我写了一个c代码来生成随机数(每次生成一组不同的随机数),需要询问用户是否要生成另一个随机数。如果用户回答是,则程序需要生成另一个随机数;如果用户回答No,则程序需要计算随机数的总和和平均值。
我的问题是我不知道如何存储随机数,并且我的循环有问题。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int sum=0, i, num[100], arr[100];
float avg;
char choice;
srand(time(0));
for(i=0; i<100; i++)
{
arr[i] = rand();
printf("Random number generated: %d", arr[i]);
fflush(stdin);
printf("nGenerate another random number(y/n)? ");
scanf("%c", &choice);
if(choice == 'n' || choice == 'N')
{
sum += arr[i];
avg = sum / i;
printf("n::TOTAL : %d", sum);
printf("n::AVERAGE : %.2f", avg);
}
}
system("PAUSE");
}
正确的输出应该是这样的:正确的输出
你的代码有几个问题:
- 在"No"-条件的末尾添加一个
break
,以便在这种情况下退出循环。 - 在"no"条件之外累积您的金额(平均金额)。
- 要存储,您可以简单地运行另一个循环
for(int j=0; j<=i; ++j) printf("%dt", arr[j]);
并从命令行复制输出-或者让自己熟悉文件IO。 - 顺便说一句:如果你累加几个相同数据类型的数字,
sum
很可能溢出。