【发布时间】:2022-11-26 23:39:27
【问题描述】:
我想通过用随机数填充矩阵来打印出二维数组列的平均数量
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int m = 0;
int n = 0;
int array[m][n];
double ran_num = (double)rand() / RAND_MAX;
double avg_col[] = {0};
printf("Enter (m, n > 0): ");
scanf("%d, %d", &m, &n);
for(size_t i = 0; i <= m; ++i){
for(size_t j = 0; j <= n; ++j){
array[i][j] = ran_num;
avg_col[j] += array[i][j] / m;
}
}
for(int i = 0; i < n; i++){
printf("Average of column %d : %.3f\n", i ,avg_col[i]);
}
return 0;
}
但输出是:
Average of column 0 : 0.000
Average of column 1 : 0.000
Average of column 2 : 0.000
我不知道问题出在哪里。 也许你可以帮助我,我将不胜感激。
【问题讨论】:
-
请记住,C 中的数组是不是动态的。您将
avg_col定义为一个数组一单元素。更糟糕的是,你定义array零元素,这是根本不允许的。一旦你修复了所有这些问题,你的循环就会出现一次性错误并超出范围。而且您可能应该在循环内获得新的随机数,否则所有值都将相同。 -
总结一下:有太多基本错误,以至于您似乎跳过了书籍、教程或课程的大部分内容。