C语言 存储随机数和Yes No循环的问题



我写了一个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");
}

正确的输出应该是这样的:正确的输出

你的代码有几个问题:

  1. 在"No"-条件的末尾添加一个break,以便在这种情况下退出循环。
  2. 在"no"条件之外累积您的金额(平均金额)。
  3. 要存储,您可以简单地运行另一个循环for(int j=0; j<=i; ++j) printf("%dt", arr[j]);并从命令行复制输出-或者让自己熟悉文件IO。
  4. 顺便说一句:如果你累加几个相同数据类型的数字,sum很可能溢出。

最新更新