使用用户定义的函数填充具有随机数/错误的数组

时间:2016-03-18 15:29:37

标签: c arrays random initialization

我的程序在执行任何操作之前崩溃,当然除了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;
}

2 个答案:

答案 0 :(得分:2)

在您的代码中,语句中使用的所有变量

  if (temperature[x]>maximum)

xtemperature[x]maximum未初始化。

作为单元化的自动局部变量,它们的初始值是不确定的。任何使用这些值的尝试都会调用undefined behavior

答案 1 :(得分:0)

在第一次循环中将其初始化为数组索引之前使用x。我想你的意思是

if (temperature[hour_count] > maximum)

而不是

if (temperature[x]>maximum)

在您的代码中,由于未使用未定义的行为时未初始化x。实际上,x的值在您尝试使用它时是不确定的。