3、有一个3×4的矩阵(从键盘输入),要求编程求出其中值最大的那个元素,以及其所在的行号和列号。
#include <iomanip> #include <iostream> using namespace std; int main() { ?? ?int a[3][4], i, j, max, i_max, j_max; ?? ?cout << "请输入3*4矩阵的值" << endl; ?? ?for (i = 0; i < 3; i++) ?? ??? ?for (j = 0; j < 4; j++) ?? ??? ??? ?cin >> a[i][j]; ?? ?max = a[0][0]; ?? ?for (i = 0;i < 3;i++) ?? ?{ ?? ??? ?for (j = 0; j < 4; j++) ?? ??? ?{ ?? ??? ??? ?if (a[i][j] > max) ?? ??? ??? ?{ ?? ??? ??? ??? ?max = a[i][j]; ?? ??? ??? ??? ?i_max = i+1; ?? ??? ??? ??? ?j_max = j+1; ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?cout << "max=" << max << ",row=" << i_max << ",column=" << j_max << endl; ?? ?return 0; }
?4、一个3*4的矩阵,从键盘输入其中的数值,要求:求每行的平均值,以及每行的最大值及其所在列号。
第一种解法,这种只适用于全为正数的情况,如果有负数,用max=0与之比较显然是不对的,就要用第二种解法了
#include <iomanip> #include <iostream> using namespace std; int main() { ?? ?int a[3][4], i, j; ?? ?cout << "请输入3*4矩阵的值" << endl; ?? ?for (i = 0; i < 3; i++) ?? ??? ?for (j = 0; j < 4; j++) ?? ??? ??? ?cin >> a[i][j]; ?? ?for (i = 0;i < 3;i++) ?? ?{ ?? ??? ?float b = 0,avg=0; ?? ??? ?int max = 0, i_max = 0; ?? ??? ?for (j = 0; j < 4; j++) ?? ??? ?{ ?? ??? ??? ?b += a[i][j]; ?? ??? ??? ?avg = b / 4; ?? ??? ??? ?if (a[i][j] > max) ?? ??? ??? ?{ ?? ??? ??? ??? ?max = a[i][j]; ?? ??? ??? ??? ?i_max = j + 1; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?cout << "第" << i + 1 << "行平均值:" << avg << ",最大值:" << max << ",列号:" << i_max << endl; ?? ?} ?? ?return 0; }
第二种解法
#include <iomanip> #include <iostream> using namespace std; int main() { ?? ?int a[3][4], i, j; ?? ?float avg[3]; ?? ?cout << "请输入3*4矩阵的值" << endl; ?? ?for (i = 0; i < 3; i++) ?? ?{ ?? ??? ?float b = 0; ?? ??? ?for (j = 0; j < 4; j++) ?? ??? ?{ ?? ??? ??? ?cin >> a[i][j]; ?? ??? ??? ?b += a[i][j]; ?? ??? ??? ?avg[i] = b / 4; ?? ??? ?} ?? ?} ?? ?for (i = 0;i < 3;i++) ?? ?{?? ??? ? ?? ??? ?int max =a[i][0], i_max = 0; ?? ??? ?for (j = 1; j < 4; j++) ?? ??? ?{?? ??? ? ?? ??? ??? ?if (a[i][j] > max) ?? ??? ??? ?{ ?? ??? ??? ??? ?max = a[i][j]; ?? ??? ??? ??? ?i_max = j + 1; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?cout << "第" << i + 1 << "行平均值:" << avg[i] << ",最大值:" << max << ",列号:" << i_max << endl; ?? ?} ?? ?return 0; }
|