题目内容:输入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 <stdio.h>
#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("对角线之和为:%d\n", sum);
}
本人拙作,请大佬们点评。
|