我需要写一个C程序:
1.填充20个基本数组(标记),随机数在0到100之间
2.将数字8打印到一行。
3.打印出最大值和最小值以及数字的平均值。
我写了下面的程序,除了min之外,每件事情都还可以,我不知道我怎么能做到这一点,或者提示会非常感激。
#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;
}
答案 0 :(得分:1)
您的代码中有一个确定最大值的条件。找到最小值也需要相同,即,像这样:
if (num[x]<min)
{
min = num[x];
}
但是这永远不会成立,因为min
为0而num[x]
总是大于0.所以通过更改
min
设置为100
int min = 0;
要
int min = 100;
但是,您的代码仍无法按预期工作。这是因为您忘记在上一个%d
中添加格式说明符(printf
)。所以改变
printf("\nThis is min number:", min);
要
printf("\nThis is min number:%d", min);
最后,您的代码将有效!