编写一个主程序,生成一个菜单界面:
当输入1时,调用矩阵赋值函数,为5*5的矩阵赋初值;
当输入2时,调用矩阵转置函数,对该矩阵进行转置操作;
当输入3时,将该矩阵上三角所有元素值变成0;
当输入4时,求该矩阵对角线所有元素的平均值;
当输入5时,将该矩阵下对角线元素变成1;
当输入0时,退出程序。
例图
#include <iostream>
using namespace std;
int main() {
void xuanze(int a[5][5], int c);
int a[5][5], n;
cout << "输入不同的数字,完成不同的功能:" << endl;
cout << "1—为5*5的矩阵赋初值" << endl ;
cout << "2—对矩阵进行转置操作" << endl ;
cout << "3—将矩阵上三角所有元素值变成0" << endl;
cout << "4—求矩阵对角线所有元素的平均值" << endl;
cout << "5—将矩阵下对角线元素变成1" << endl;
cout << "0—退出程序" << endl<< endl;
cout << "请输入:";
cin >> n;
xuanze(a, n);
return 0;
}
void fuzhi(int a[5][5]){
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++)cin >> a[i][j];
}
}
void zhuanzhi(int a[5][5]){
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
int t = a[j][i];
a[j][i] = a[i][j];
a[i][j] = t;
}
}
}
void bianling(int a[5][5]){
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++)
if (i < j)a[i][j] = 0;
}
}
int pingjun(int a[5][5]) {
int sum = 0, aver = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++)
if (i == j)sum = sum + a[i][j];
}
aver = sum / 5;
return(aver);
}
void bianyi(int a[5][5]){
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++)
if (i == j)a[i][j] = 1;
}
}
void shuchuzaishuru(int a[5][5]) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++)cout<<a[i][j]<<" ";
cout << endl;
}
cout << endl;
cout << "请再输入:";
}
void xuanze(int a[5][5], int c) {
switch (c){
case 1:
cout << "请为5*5的矩阵赋初值:" << endl;
fuzhi(a);
cout << "赋初值后的矩阵:" << endl;
shuchuzaishuru(a);
cin >> c;
xuanze(a, c);
break;
case 2:
zhuanzhi(a);
cout << "矩阵置换操作:" << endl;
shuchuzaishuru(a);
cin >> c;
xuanze(a, c);
break;
case 3:
bianling(a);
cout << "将矩阵上三角所有元素值变成0:" << endl;
shuchuzaishuru(a);
cin >> c;
xuanze(a, c);
break;
case 4:
cout << "该矩阵对角线所有元素的平均值为:" ;
cout << pingjun(a)<< endl << endl;
cout << "请再输入:";
cin >> c;
xuanze(a, c);
break;
case 5:
bianyi(a);
cout << "将矩阵下对角线元素变成1:" << endl;
shuchuzaishuru(a);
cin >> c;
xuanze(a, c);
break;
case 0:
cout << "已退出程序。";
break;
}
}