【发布时间】:2016-06-27 12:35:04
【问题描述】:
因此,我通过在 60-100 的任意位置创建一个随机数生成器并将其中的 25 个存储在一个数组中来制作贫民区天气报告。然后我有一个函数可以计算最大值、最小值和平均值,并将所有这些都打印出来。
我让它运行没有错误,但我得到的只是显示中的一堆零,这意味着我在计算中的某个地方搞砸了很多时间,有什么建议吗?
此外,我正在尝试调用用户定义的函数,这就是为什么我有几个。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int sum = 0;
int min = 0;
int max = 0;
int temp[25];
int i = 0;
float avg = 0;
int main () {
srand( (unsigned) time(NULL) );
for (i=0; i < 25; i++) {
get_value(i);
sum += temp[i];
}
calc_results(temp[25]);
return 0;
};
int get_value(void) {
return((rand() % (100 - 60 + 1)) + 60);
};
int calc_results(int temp_number[], int number) {
avg = ((sum)/(25));
max = temp[0];
for(i=1;i<25;i++){
if(max<temp[i])
max=temp[i];
};
min =temp[0];
for(i=1;i<25;i++){
if(min>temp[i])
min=temp[i];
};
printf("Temperature Conditions on October 9, 2015 : \n");
printf("Time of day Temperature in degrees F \n");
printf(" 0 %d\n",temp[0]);
printf(" 1 %d\n",temp[1]);
printf(" 2 %d\n",temp[2]);
printf(" 3 %d\n",temp[3]);
printf(" 4 %d\n",temp[4]);
printf(" 5 %d\n",temp[5]);
printf(" 6 %d\n",temp[6]);
printf(" 7 %d\n",temp[7]);
printf(" 8 %d\n",temp[8]);
printf(" 9 %d\n",temp[9]);
printf(" 10 %d\n",temp[10]);
printf(" 11 %d\n",temp[11]);
printf(" 12 %d\n",temp[12]);
printf(" 13 %d\n",temp[13]);
printf(" 14 %d\n",temp[14]);
printf(" 15 %d\n",temp[15]);
printf(" 16 %d\n",temp[16]);
printf(" 17 %d\n",temp[17]);
printf(" 18 %d\n",temp[18]);
printf(" 19 %d\n",temp[19]);
printf(" 20 %d\n",temp[20]);
printf(" 21 %d\n",temp[21]);
printf(" 22 %d\n",temp[22]);
printf(" 23 %d\n",temp[23]);
printf(" 24 %d\n",temp[24]);
printf(" 25 %d\n",temp[25]);
printf("Maximum Temperature for the day: %d Degrees F\n", max);
printf("Minimum Temperature for the day: %d Degrees F\n", min);
printf("Average Temperature for the day: %.1f Degrees F\n", avg);
};
【问题讨论】:
-
如果出现大乱子也很抱歉!语法让我习惯了
-
calc_results(temp[25]);这怎么可能?temp[25]是越界数组访问。并且calc_results被定义为采用两个参数:int calc_results(int temp_number[], int number)。猜猜应该是calc_results(temp, 25) -
注意:
printf(" 0 %d\n",temp[0]); printf(" 1 %d\n",temp[1]); printf(" 2 %d\n",temp[2]); ....呼唤一个循环。
标签: c arrays random max minimum