用c语言求出数组两条对角线上个元素之和
时间: 2024-02-11 12:10:01 浏览: 34
假设我们有一个二维数组`arr`,大小为`n*n`,要求计算其两条对角线上各个元素之和,可以使用以下C语言代码实现:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入二维数组的大小n:");
scanf("%d", &n);
int arr[n][n];
printf("请输入二维数组的%d个元素:\n", n*n);
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
int sum1 = 0, sum2 = 0;
for(int i = 0; i < n; i++) {
sum1 += arr[i][i]; // 左上到右下对角线上的元素
sum2 += arr[i][n-i-1]; // 右上到左下对角线上的元素
}
printf("数组两条对角线上元素之和分别为:%d和%d\n", sum1, sum2);
return 0;
}
```
运行程序后,输入二维数组的大小和各个元素,即可得到两条对角线上的元素之和。
相关问题
求二维数组Ann两条对角线上元素之和使用c语言写出代码
Sure, here is a sample code in C language to find the sum of elements on two diagonals of a 2D array Ann:
```
#include <stdio.h>
int main() {
int Ann[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int sum1 = 0, sum2 = 0;
int i, j;
for(i = 0; i < 3; i++) {
sum1 += Ann[i][i]; // elements on diagonal from top left to bottom right
sum2 += Ann[i][3-i-1]; // elements on diagonal from top right to bottom left
}
printf("Sum of elements on diagonal 1: %d\n", sum1);
printf("Sum of elements on diagonal 2: %d\n", sum2);
return 0;
}
```
This code defines a 2D array Ann with size 3x3 and initializes it with some values. It then uses two nested loops to iterate over all elements in the array and adds elements on the first diagonal (from top left to bottom right) to `sum1` variable and elements on the second diagonal (from top right to bottom left) to `sum2` variable. Finally, it prints out the sums of elements on both diagonals. Hope this helps!
用c语言随机数组求4*4矩阵中两条对角线元素之和
下面是C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int matrix[4][4];
int sum1 = 0, sum2 = 0;
srand(time(NULL)); // 用当前时间作为随机数种子
// 随机生成4*4矩阵
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
matrix[i][j] = rand() % 10; // 生成0-9之间的随机数
}
}
// 输出矩阵
printf("随机生成的矩阵:\n");
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 求两条对角线元素之和
for (int i = 0; i < 4; i++)
{
sum1 += matrix[i][i]; // 第一条对角线元素之和
sum2 += matrix[i][3-i]; // 第二条对角线元素之和
}
// 输出两条对角线元素之和
printf("第一条对角线元素之和:%d\n", sum1);
printf("第二条对角线元素之和:%d\n", sum2);
return 0;
}
```
运行结果示例:
```
随机生成的矩阵:
1 9 9 8
0 9 2 6
0 0 5 1
0 2 5 7
第一条对角线元素之和:22
第二条对角线元素之和:22
```