求大神帮忙,C语言,写C++作业 50
C语言作业把a[n][n]二维数组对角线元素置1,并求其余元素之和,要求用函数完成9(本体令=4)求大神帮忙写一下C++程序,然后在解释一下C++程序用文字。谢谢要求,1...
C语言作业
把 a[n][n]二维数组对角线元素置1,并求其余元素之和,要求用函数完成9(本体令=4)
求大神帮忙写一下C++ 程序,
然后在解释一下C++程序 用文字。
谢谢
要求,
1, 输入a数组元素值
2,输入对角线置1后a数组
3,输出其余元素之和。
被调用函数中完成
1,对角线元素C主,副两条对角线置1
2,对其余元素之后返回其值
最后把算法用文字描述一下, 谢谢 展开
把 a[n][n]二维数组对角线元素置1,并求其余元素之和,要求用函数完成9(本体令=4)
求大神帮忙写一下C++ 程序,
然后在解释一下C++程序 用文字。
谢谢
要求,
1, 输入a数组元素值
2,输入对角线置1后a数组
3,输出其余元素之和。
被调用函数中完成
1,对角线元素C主,副两条对角线置1
2,对其余元素之后返回其值
最后把算法用文字描述一下, 谢谢 展开
2个回答
展开全部
/*
29 27 12 31 21 98
35 16 25 96 37 66
32 65 49 16 99 67
99 32 46 34 14 92
90 27 76 87 42 10
40 68 82 27 35 58
1 27 12 31 21 98
35 1 25 96 37 66
32 65 1 16 99 67
99 32 46 1 14 92
90 27 76 87 1 10
40 68 82 27 35 1
其余元素之和为 : 1552
Press any key to continue
*/
#include <iostream>
#include <ctime>
using namespace std;
#define N 6
int sum(int a[][N]) {
int sum = 0;
for(int i = 0; i < N; ++i) {
for(int j = 0; j < N; ++j) {
if(i == j) a[i][j] = 1;
else sum += a[i][j];
}
}
return sum;
}
void show(int a[][N]) {
for(int i = 0; i < N; ++i) {
for(int j = 0; j < N; ++j) {
cout.width(4);
cout << a[i][j];
}
cout << endl;
}
cout << endl;
}
int main() {
int a[N][N],i,j;
int res;
srand((unsigned)time(NULL));
for(i = 0; i < N; ++i)
for(j = 0; j < N; ++j)
a[i][j] = rand()%90 + 10;
show(a);
res = sum(a);
show(a);
cout << "其余元素之和为 : " << res << endl;
return 0;
}
更多追问追答
追问
能不能把算法描述用中文写出来??
还有最后结果是4*4的 而且是一个叉的1
追答
int sum(int a[][N]) { // 主副对角线置1,并其余元素之和。
int sum = 0;
for(int i = 0; i < N; ++i) {
for(int j = 0; j < N; ++j) {
// i == j时,主对角线置1
// i + j == N - 1时,辅对角线之1
if(i == j || i + j == N - 1) a[i][j] = 1;
else sum += a[i][j]; // 求其余元素的和
}
}
return sum;
}
宏 #define N 6 // 决定二维数组的大小,需要4 * 4时,只需将6改为4即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询