用户输入一组阵列放入到一个二维数组中,求该阵列对角线之和。C语言代码
时间: 2024-05-08 11:18:44 浏览: 14
可以如下实现:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int matrix[ROWS][COLS], i, j, sum = 0;
// 输入二维数组
printf("请输入%d行%d列的二维数组:\n", ROWS, COLS);
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
scanf("%d", &matrix[i][j]);
}
}
// 计算对角线之和
for (i = 0; i < ROWS; ++i) {
sum += matrix[i][i];
}
printf("对角线之和为:%d\n", sum);
return 0;
}
```
当用户输入一个 $3\times 3$ 的阵列 `[1 2 3; 4 5 6; 7 8 9]` 时,程序输出:
```
请输入3行3列的二维数组:
1 2 3
4 5 6
7 8 9
对角线之和为:15
```
相关问题
用c语言编程由用户输入一组阵列放入到一个二维数组中,求该阵列对角线之和。 例如: 输入: 1 2 3 4 5 6 7 8 9 输出:15
好的,这是一个比较基础的 C 语言编程问题,下面是代码实现:
```c
#include <stdio.h>
#define ROW 3
#define COL 3
int main() {
int arr[ROW][COL]; // 定义二维数组
int sum = 0; // 对角线之和
// 从用户输入读入数组元素
printf("请输入 %d 行 %d 列的数组元素:\n", ROW, COL);
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
scanf("%d", &arr[i][j]);
}
}
// 计算对角线之和
for (int i = 0; i < ROW; i++) {
sum += arr[i][i]; // 主对角线
sum += arr[i][COL - i - 1]; // 副对角线
}
// 输出对角线之和
printf("对角线之和为:%d\n", sum);
return 0;
}
```
上述代码中,我们首先定义了一个 $3\times 3$ 的二维数组 `arr`,然后通过两层循环从用户输入读入数组元素。接着,我们通过一个循环计算出对角线之和,最后输出结果即可。
需要注意的是,在计算副对角线时,我们使用了 `COL - i - 1` 来计算对应的列数,这是因为副对角线上的元素所在的列数可以通过 `COL - i - 1` 计算得到。
用c语言写一个输入起始字符输出下三角形字符阵列图形
好的,以下是C语言程序:
```
#include <stdio.h>
int main()
{
char c;
printf("请输入起始字符:");
scanf("%c", &c);
for(int i=1; i<=5; i++) // 控制行数,这里假设为5行
{
for(int j=1; j<=i; j++) // 控制每行输出的字符数
{
printf("%c ", c);
}
printf("\n"); // 每行末尾换行
}
return 0;
}
```
输入起始字符后,输出下三角形字符阵列图形。如输入字符 `*`,则输出:
```
*
* *
* * *
* * * *
* * * * *
```