题目内容:输入N×N阶矩阵(N使用define定义),输出其两条对角线上的各元素之和。
【要求:①定义函数void Input( int a[N][N],),其功能是输入矩阵的数据;②定义函数int AddDiagonal (int a[N][N]);,其功能是返回对角线元素。主函数分别调用上面两个函数,输出对角线上的各元素之和】
输入样例: 1 2 3
4 5 6
7 8 9
输出样例: 对角线之和为:25
个人解法如下:
#define _CRT_SECURE_NO_WARNINGS //防报错 #include#define N 10000 void Input(int a[N][N], int n) { int i, j; printf("请输入矩阵的具体数值:n"); for (i = 0; i < n; i++) for (j = 0; j < n; j++) scanf("%d", &a[i][j]); } int AddDiagonal(int a[N][N], int n) { int i, j, sum = 0; for (i = 0; i < n; i++) for (j = 0; j < n; j++) if (i == j || i + j == n - 1) sum = sum + a[i][j]; return sum; } void main() { int a[N][N], n, sum; printf("请输入矩阵阶数:n"); scanf("%d", &n); Input(a, n); sum = AddDiagonal(a, n); printf("对角线之和为:%dn", sum); }
本人拙作,请大佬们点评。


![【C语言习题】输入N×N阶矩阵,输出其两条对角线上的各元素之和(定义函数void Input(int a[N][N])输入矩阵数据;函数AddDiagonal(int a[N][N])返回对角线元素) 【C语言习题】输入N×N阶矩阵,输出其两条对角线上的各元素之和(定义函数void Input(int a[N][N])输入矩阵数据;函数AddDiagonal(int a[N][N])返回对角线元素)](http://www.mshxw.com/aiimages/31/648418.png)
