输入一个4×4整数矩阵

9.1输入一个4×4的整数矩阵,求其的主对角线(左上到右下)上所有偶数的和sum及奇数的平均值ave(用英文逗号隔开)。
要求:结果保留2位小数

  • 这篇博客: 学习笔记|2. C语言的常量变量中的 2.3  变量使用的实例(以简单的相加sum为例) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include<stdio.h>
    
    int main()
      {
          int a;//a,b,sum这几个变量可以在一开始赋值,也可以不赋值,对后面的结果不会产生影响
          int b;
          int sum;
          scanf("%d %d",&a,&b);//输入的第一个数放到a中,第二个数放到b中
          sum=a+b;
          printf("sum=%d\n",sum);
          return 0;
      }
        
  • 以下回答由chatgpt基于相关博客总结生成:
    # 定义一个4*4的矩阵
    matrix = [
        [1, 2, 3, 4],
        [5, 6, 7, 8],
        [9, 10, 11, 12],
        [13, 14, 15, 16],
    ]
    
    # 计算主对角线上的数字和所有偶数的和
    main_sum = 0
    even_sum = 0
    even_count = 0
    for i in range(4):
        for j in range(4):
            if i == j:  # 主对角线上的数字
                main_sum += matrix[i][j]
            if matrix[i][j] % 2 == 0:  # 偶数
                even_sum += matrix[i][j]
                even_count += 1
    
    # 计算奇数的平均值
    odd_sum = main_sum - even_sum
    odd_count = 4 - even_count
    odd_avg = round(odd_sum / odd_count, 2)
    
    # 输出结果
    print("{:.2f},{:.2f},{:.2f}".format(main_sum, even_sum, odd_avg))
    

以下是一个求解4x4整数矩阵主对角线上偶数和及奇数平均值的C程序示例:

#include <stdio.h>

int main() {
    int matrix[4][4];
    int sum = 0;
    int count = 0;
    float ave;

    printf("请输入4x4矩阵的元素:\n");
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            scanf("%d", &matrix[i][j]);
            if (i == j) {
                if (matrix[i][j] % 2 == 0) {
                    sum += matrix[i][j];  // 累加主对角线上的偶数
                } else {
                    ave += matrix[i][j];  // 累加主对角线上的奇数
                    count++;              // 统计主对角线上的奇数个数
                }
            }
        }
    }

    if (count > 0) {
        ave /= count;                      // 计算奇数平均值
        printf("主对角线上偶数的和为:%d, 奇数的平均值为:%.2f\n", sum, ave);
    } else {
        printf("主对角线上没有奇数\n");
    }

    return 0;
}

该程序通过键盘输入获取4x4矩阵的元素,然后在遍历矩阵的过程中,判断元素是否在主对角线上(即行索引等于列索引),如果是,则判断该元素是偶数还是奇数,累加偶数到sum变量中,累加奇数到ave变量中,并增加奇数的个数计数器count。最后,如果主对角线上存在奇数,则计算奇数的平均值。最终输出偶数和及奇数平均值(如果有奇数的话),结果保留两位小数。

#include <stdio.h>

int main() {
    int matrix[4][4];
    int i, j, count = 0;
    float sum = 0, ave = 0;
    
    // 读取矩阵
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    
    // 计算主对角线上的偶数和奇数平均值
    for (i = 0; i < 4; i++) {
        if (matrix[i][i] % 2 == 0) {
            sum += matrix[i][i];
        } else {
            ave += matrix[i][i];
            count++;
        }
    }
    if (count != 0) {
        ave = ave / count;
    }
    
    // 输出结果,保留2位小数
    printf("%.2f,%.2f", sum, ave);
    
    return 0;
}