C语言输入一个正整数 n 和 m,(0<n<7, 0< m<7)表示为 n 行 m 列的矩阵,统计出矩阵中大于所有元素平均值的元素之和以 及元素个数,请编写相应程序。
时间: 2023-06-08 08:08:31 浏览: 118
好的,没有问题。针对你的问题,我可以提供以下代码:
```
#include <stdio.h>
int main() {
int n,m;
int sum = 0; // 存储大于所有元素平均值的元素之和
int count = 0; // 存储大于所有元素平均值的元素个数
printf("请输入矩阵的行数n和列数m,以空格分隔:");
scanf("%d %d", &n, &m);
// 动态创建二维数组
int **matrix = (int **)malloc(n * sizeof(int *));
for (int i = 0; i < n; i++) {
matrix[i] = (int *)malloc(m * sizeof(int));
}
// 输入矩阵元素
printf("请输入矩阵元素,以空格分隔:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 求矩阵元素平均值
float average = 0.0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
average += matrix[i][j];
}
}
average /= (n * m);
// 统计大于平均值的元素之和和个数
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] > average) {
sum += matrix[i][j];
count++;
}
}
}
// 输出结果
printf("大于元素平均值的元素之和为:%d\n", sum);
printf("大于元素平均值的元素个数为:%d\n", count);
// 释放动态分配的内存
for (int i = 0; i < n; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
```
这段代码使用动态数组,借助输入的矩阵元素进行计算,最后输出大于矩阵元素平均值的元素之和以及元素个数。希望能对你有所帮助。
阅读全文
相关推荐


















