c++,高手请帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:05:57
各位高手请帮帮小弟我啊,这题太难了。
题目是:
建立一个二维数组,M行N列,每个元素的值随机产生,通过函数调用求出,然后进行排序。
要求:用类来实现,即在类中用成员函数来实现,最大值和最小值作为私有函数。
1,求出该数组的素数,并输出。
2,求出该素数组中的最大值和最小值,并输出。
3,求出每一行的数据的总和,并用选择排序法排序,并输出。
(1),输入:数组名称(也就是数组的首地址)。数组中元素的个数。
(2),算法的思想简单概述:
A,在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
B,然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
请帮下我,5555
那你有办法帮我解决不,帮我编个程序。

#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

#define M 5
#define N 4

class A
{
public:

A()//构造函数,置随机值(100以内)
{
srand(time(NULL));
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
a[i][j] = rand()%100;
}

void sumLine()//输出每行的数据总和
{
for(int i=0;i<M;i++)
{
int sum=0;
for(int j=0;j<N;j++)
sum += a[i][j];
cout<<"第"<<i<<"行的数据总和为:"<<sum<<endl;
}
}

int sort()//完成选择排序,和求俩个最值
{
int *p=&a[0][0];
int n=M*N;
for(int i=0;i<n;i++)
{
int temp, max = i;
for(int j=i;j<n;j++)
if(p[max] > p[j])
max=j;
if(i != max)
{
temp = p[max];
p[max] = p[i];
p[i] = temp;
}