c 语言编写程序,生成5行5列的二维数组,计算并输出每行每列及对角线的和。 (1)定义整型二维数组。 (2)利用循环计算每行、每列及两个对角线的和,输出结果。
时间: 2024-11-22 13:39:48 浏览: 17
cpp代码-大作业第二题: 输入一个5行5列的二维数组,编程实现: (1) 求出其中的最大值和最小值及其对应的行列位置; (2) 求出上三角上各元素之和(上三角的元素a[i][j] ,i+j<5)。
5星 · 资源好评率100%
在C语言中,我们可以使用数组和嵌套循环来创建一个5x5的二维数组,并计算每一行、每一列以及两条对角线的总和。这里是一个简单的示例:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 5
int main() {
// (1)定义整型二维数组
int arr[ROWS][COLS] = {0}; // 初始化所有元素为0
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
// 如果是主对角线,索引i等于j
if (i == j) {
arr[i][j] = i + 1;
}
// 另一条对角线,索引i加j等于4(总大小)
else if (i + j < ROWS && i + j < COLS) {
arr[i][j] = ROWS - i - j;
} else {
arr[i][j] = 0; // 对于超出范围的索引,设置为0
}
}
}
// (2)计算并输出每行、每列和两对角线的和
printf("Row sums:\n");
for (int i = 0; i < ROWS; i++) {
int row_sum = 0;
for (int j = 0; j < COLS; j++) {
row_sum += arr[i][j];
}
printf("Sum of row %d: %d\n", i+1, row_sum);
}
printf("\nColumn sums:\n");
for (int j = 0; j < COLS; j++) {
int col_sum = 0;
for (int i = 0; i < ROWS; i++) {
col_sum += arr[i][j];
}
printf("Sum of column %d: %d\n", j+1, col_sum);
}
printf("\nDiagonal sums:\n");
printf("Main diagonal sum: %d\n", arr[0][0]); // 主对角线从(0,0)开始
printf("Other diagonal sum: %d\n", arr[ROWS-1][COLS-1]); // 另一条对角线从(4,4)开始,如果大小小于5)
return 0;
}
```
当你运行这个程序,它会打印出每个行、列以及两条对角线的和。
阅读全文