我需要编写一个C程序到:
1.用一个介于0到100之间的随机数填充20个基本数组(标记)
2.将数字8打印到一行。
3.打印出最大值和最小值以及数字的平均值。
我写了下面的程序,除了分钟,其他一切都还好,我不知道我该怎么做,任何帮助或技巧都将不胜感激。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i = 0;
int sum = 0;
int avg = 0;
int min = 0;
int max = 0;
int x = 0;
int random = 0;
int num[20] = { 0 };
srand(time(NULL));
for (x = 0; x<20; x++)
{
random = rand() % 100 + 1;
num[x] = random;
if (num[x]>max)
{
max = num[x];
}
if (x % 8 == 0)
{
printf("\n");
}
sum += random;
printf("%d\t", num[x]);
}
avg = sum / 20;
printf("\n\nthis is Max number: %d", max);
printf("\nThis is average number:%d", avg);
printf("\nThis is min number:", min);
return 0;
}
最佳答案
您的代码中有一个条件可以确定最大值。寻找最小值也需要相同的方法,例如:
if (num[x]<min)
{
min = num[x];
}
但这永远不会成立,因为
min
为0,而num[x]
始终大于0。因此,通过更改将min
设置为100int min = 0;
至
int min = 100;
但是,您的代码仍无法按预期运行。这是因为您忘记在最后一个
%d
中添加格式说明符(printf
)。所以改变printf("\nThis is min number:", min);
至
printf("\nThis is min number:%d", min);
最后,您的代码将起作用!
关于c - 随机数的最大值和最小值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27298677/