我的程序在执行任何操作之前崩溃,当然除了printf()
语句之外。我也试图包含一个用户定义函数,但我做错了,因为它给了我错误,它是未定义的,我把它放在int main()
之上,但它仍然标记了相同的错误。我需要随机数来填充数组。
#include <stdio.h>
#include <stdlib.h>
#define ARR SIZE 25
#define MAXIMUM 100
#define MINIMUM 60
int main ()
{
int temp_sum; //Initializes sum of all temperatures in order to calculate average total.
int temp_min, temp_max; //Initializes minimum and maximum temperature variables.
int hour_count; //Initializes actual hour of the day.
int temperature[25]; //Initializes array to have 25 elements.
int x, maximum, minimum;
float temp_avg; //Sets variable to accept a decimal.
hour_count=0;
printf("Temperature Conditions on October 9th, 2015:\n");
printf("Time of Day \t \t Temperature in Degree Farenheit\n");
//Starts for loop to add one to each hour of the day.
for (hour_count=0; hour_count<=24; hour_count++)
{
if (temperature[x]>maximum)
{
temp_max=temperature[x];
temp_max=x;
}
if (temperature[x]<minimum)
{
temp_min=temperature[x];
temp_min=x;
}
printf("%d \t\t\t %d\n", hour_count, temperature);
}
temp_sum=0;
for (x=0; x<=24; x++)
{
temp_sum=temp_sum+temperature[x];
}
temp_avg=temp_sum/25;
void GetValue(int value[], int x)
{
value[x] = (rand()%(100-60+1))+60;
}
printf("The maximum temperature for the day is %d degrees Farenheit.\n", temp_max);
printf("The minimum temperature for the day is %d degrees Farenheit.\n", temp_min);
printf("The average temperature for the day is %d degrees Farenheit.\n", temp_avg);
return 0;
}
答案 0 :(得分:2)
在您的代码中,语句中使用的所有变量
if (temperature[x]>maximum)
x
,temperature[x]
和maximum
未初始化。
作为单元化的自动局部变量,它们的初始值是不确定的。任何使用这些值的尝试都会调用undefined behavior。
答案 1 :(得分:0)
在第一次循环中将其初始化为数组索引之前使用x
。我想你的意思是
if (temperature[hour_count] > maximum)
而不是
if (temperature[x]>maximum)
在您的代码中,由于未使用未定义的行为时未初始化x
。实际上,x
的值在您尝试使用它时是不确定的。