c++ 按下列要求编写程序:输入一个6*6的二维数组的输入,二维数组的平均值计算和输出,
c++按下列要求编写程序:输入一个6*6的二维数组的输入,二维数组的平均值计算和输出,二维数组的最大值及其所在的行号、列号的寻找和输出。(1)为一个6*6的二维整型数组输...
c++ 按下列要求编写程序:输入一个6*6的二维数组的输入,二维数组的平均值计算和输出,二维数组的最大值及其所在的行号、列号的寻找和输出。
(1)为一个6*6的二维整型数组输入数据的任务由函数Input()完成,该函数用指向一维数组的指针变量和二维数组的行数作形参,无返回值。
(2)为一个6*6的二维整型数组升序排序的任务由函数Sort()完成,该函数用整型指针变量和一维数组的元素个数作形参,无返回值。
(3)在main()函数中调用上述函数,实现二维数组多输入,二维数组的排序和输出。 展开
(1)为一个6*6的二维整型数组输入数据的任务由函数Input()完成,该函数用指向一维数组的指针变量和二维数组的行数作形参,无返回值。
(2)为一个6*6的二维整型数组升序排序的任务由函数Sort()完成,该函数用整型指针变量和一维数组的元素个数作形参,无返回值。
(3)在main()函数中调用上述函数,实现二维数组多输入,二维数组的排序和输出。 展开
1个回答
展开全部
#include <iostream>
using namespace std;
void Input(int *a, int rows) {
for (int i=0;i<rows;i++) {
cout << "Input row [" << i << "]:";
for (int j=0;j<6;j++) {
cin >> *(a + i*6 +j);
}
}
}
double Average(int *a, int size) {
double sum = 0.0;
for (int i=0;i<size;i++)
sum += *(a+i);
return sum/size;
}
/**
* 返回最大值所在行、列号
*/
void Max(int *a, int rows, int cols, int *r, int *c) {
int *b = a+1, m = *a;
*r = 0; *c = 0;
while (b!=a+rows*cols) {
if (*b>m) {
m = *b;
*r = (b-a)/cols;
*c = (b-a)%cols;
}
b++;
}
}
//冒泡排序
void Sort(int *a, int size) {
int t;
for (int i=0;i<size-2;i++) {
for (int j=0;j<size-1-i;j++) {
if (*(a+j) >*(a+j+1)) {
t = *(a+j);
*(a+j) = *(a+j+1);
*(a+j+1) = t;
}
}
}
}
void Display(int *a, int rows, int cols) {
cout << "--------------------------" << endl;
for (int i=0;i<rows;i++) {
for (int j=0;j<cols;j++) {
cout << *(a+i*rows+j) << " ";
}
cout << endl;
}
cout << "--------------------------" << endl;
}
int main() {
int a[6][6], row, col;
Input((int*)a, 6);
Display((int*)a, 6, 6);
cout << "平均值:" << Average((int*)a, 6*6) << endl;
Max((int*)a, 6, 6, &row, &col);
cout << "最大值:" << a[row][col] << ", 所在行:" << row << ",列:" << col << endl;
Sort((int*)a, 6*6);
Display((int*)a, 6, 6);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |