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