数组中的随机数,max,min,average

时间:2016-03-12 05:36:50

标签: c arrays random max minimum

因此,我通过在60-100之间创建一个随机数生成器并将其中的25个存储在数组中来制作贫民窟天气报告。然后我有一个函数来计算最大值,最小值和平均值以及打印所有这些。

我让它运行没有错误,但我得到的只是我的显示器中的一堆零,这意味着我在计算中的某个地方弄乱了很多时间,任何建议?

此外,我还试图调用用户定义的函数,这就是为什么我有几个。

(?:(?:\d[- _]*){6,})|(?<num_1>\d[- _]*)(?<num_2>\d[- _]*)(?<num_3>\d[- _]*)(?<num_4>\d)(?<num_5>[- _]*\d)?

3 个答案:

答案 0 :(得分:0)

只是偶然这一行

send

get_value(i);

因为您必须将随机值存储在temp[i]=get_value(i); 中,所以您可以计算其他值。

当你传递数组时。你应该这样做 -

temp[i]

您可以通过calc_results(temp); 循环打印所有数组值。像这样:

for

答案 1 :(得分:0)

首先使用循环打印25个printf语句...你的代码会有点小...... 做以下更改,它应该工作得很好......

time_t t;
srand((unsigned) time(&t)); // this is a more standard way of using srand

你也在get_value()中传递了int,其参数为void ... 在main

中的for循环中执行此操作

temp[i]=get_value();

还在您的代码上方声明您的功能......

你不需要像这样的calc_results()...

做到这一点 void calc_results(void) 并且没有传递临界值因为它已经全局...不需要传递数字类型整数因为你没有使用任何这样的东西...不需要使用返回类型作为int因为你不需要返回任何整数...

最终建议...... 获取有关功能的好书

所以你的最终代码看起来像这样: -

    #include <stdio.h>
#include <stdlib.h>
#include <time.h>
int get_value(void);
void calc_results(void);
int sum = 0;
int min = 0;
int max = 0;
int temp[25];
int i = 0;
float avg = 0;


int main () {
time_t t;
srand((unsigned) time(&t));
for (i=0; i < 25; i++) {

temp[i]=get_value();
sum += temp[i];

}

calc_results();

return 0;
};



int get_value(void) {
    return((rand() % (100 - 60 + 1)) + 60);

};



void calc_results(void) {

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");
for(int j=0;j<25;j++){
printf("  %d      %d\n",i,temp[i]);
}
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);

};

同样除非局部变量失败,否则不要使用全局变量......当你执行一些大代码和文件处理时,这将有很大的帮助

答案 2 :(得分:0)

您没有为temp [i]指定任何值吗?

for (i=0; i < 25; i++) {

temp[i] = get_value(i);
sum += temp[i];

}