题目:
随机生成一个5*5不同元素的矩阵,编程实现:(1)求两条对角线上的各元素之和;(2)求两条对角线上行、列下标均为偶数的各元素之和。
输出格式:
5*5的不同元素矩阵
输入样例:
代码如下:
#include <stdio.h>
#include <stdlib.h>//随机数头文件
#include <time.h>//系统时间头文件
int main() {
int i, j, sum1, sum2 ;
sum1 = sum2 = 0;
const int n1 = 5, n2 = 5;
int cnt[n1][n2] ;
srand(time(NULL));//循环外生成25个不同数,循环内生成25个相同数
for (i = 0; i < 5 ; i++ ) {
for ( j = 0; j < 5 ; j++ ) {
cnt[i][j] = (rand() % 9) + 1;//取1~9随机数
printf("%d", cnt[i][j]);//打印出5*5矩阵
putchar(' ');
}
putchar('\n');
}
for (j = 0, i = 0; i < 5 && j < 5; i++, j++) {
sum1 += cnt[i][j] + cnt[i][4 - i];
if (i == 0 && j == 0 || i % 2 == 0 && j % 2 == 0) {//行、列下标从0到 4
sum2 += cnt[i][j] + cnt[i][4 - i];
}
}
sum1 -= cnt[2][2];
printf("两条对角线上的元素和为%d\n", sum1);
printf("两条对角线上行、列下标均为偶数的元素和为%d\n", sum2);
return 0;
}