方阵对角线元素求和及计数!!

对输入的一个N*N的方阵,求其两条对角线上的元素之和及非零元素的数量。

输入格式:

第一行输入一个不超过20的正整数N,

在接下来的N行中,依次输入方阵的每一行的N个元素,方阵元素为绝对值不超过1000的整数,中间以空格间隔。

输出格式:

在一行中以sum = < s >, count =< c > 的格式输出方阵两对角线上的元素之和以及非零元素的数量,其中< s>、, < c >分别表示元素之和、非零元素数量,输出时以实际数量替换。
输入样例1:

4
1 2 3 4
1 2 3 4
0 1 2 3
0 1 2 3

输出样例1:

sum = 16, count = 7.

输入样例2:

5
1 2 3 2 1
1 2 3 2 1
1 2 3 2 1
1 2 3 2 1
1 2 3 2 1

输出样例:

sum = 15, count = 9.

代码如下:

#include <stdio.h>
#include <stdlib.h>
int main() {
int num,a[20][20],cout=0,sum=0,i,j;     
     scanf("%d",&num);    
    for(i=0;i<num;i++)     
    for(j=0;j<num;j++){
    scanf("%d",&a[i][j]);//对数组进行输入
   if(i==j||i+j==num-1)//累加的条件
     {
        if(a[i][j]!=0)
        cout+=1;//记录非零的数字
        sum+=a[i][j];}}//累加
printf("sum = %d, count = %d.\n",sum,cout);
  return 0;
}
### 回答1: 以下是方阵对角线元素的平均值的 C 代码设计: #include <stdio.h> int main() { int n, i, j; float sum = , avg; printf("请输入方阵的阶数:"); scanf("%d", &n); int a[n][n]; printf("请输入方阵元素:\n"); for(i = ; i < n; i++) { for(j = ; j < n; j++) { scanf("%d", &a[i][j]); if(i == j) { sum += a[i][j]; } } } avg = sum / n; printf("方阵对角线元素的平均值为:%.2f", avg); return ; } ### 回答2: #include <stdio.h> int main() { int n; printf("请输入方阵的阶数:"); scanf("%d", &n); int matrix[n][n]; printf("请输入方阵元素:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); } } int sum = 0; for (int i = 0; i < n; i++) { sum += matrix[i][i]; // 对角线元素的和 } float average = (float) sum / n; // 计算平均值 printf("对角线元素的平均值为:%.2f\n", average); return 0; } 这段代码实现了方阵对角线元素的平均值。首先,从用户输入获取方阵的阶数n。然后,创建一个n×n的二维数组matrix,用于存储方阵元素。接下来,用户需要依次输入方阵元素,通过个循环遍历数组,使用scanf函数将用户输入的元素存储到对应的位置上。 然后,我们使用一个变量sum来记录对角线元素的和,通过一个循环,遍历数组的对角线元素,并将其加到sum上。 最后,我们使用变量average来记录平均值,通过sum除以n即可得到。最后使用printf函数输出平均值。 注意,为了确保精确度,我们在计算average时将sum强制转换为float类型进行计算。输出时使用%.2f来限定小数点后位的精度。 ### 回答3: 下面是一个C语言方阵对角线元素平均值的代码设计: ```c #include <stdio.h> int main() { int n, i, j; float sum = 0; printf("请输入方阵的维度:"); scanf("%d", &n); int matrix[n][n]; printf("请输入方阵元素:\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); } } for (i = 0; i < n; i++) { sum += matrix[i][i]; // 累加主对角线上的元素 } float average = sum / n; printf("方阵对角线元素的平均值为 %.2f\n", average); return 0; } ``` 运行程序后,首先输入方阵的维度,然后输入方阵元素。程序会计算主对角线上的元素总和,并计算平均值,最后将平均值输出到屏幕上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值