关于随机数生成

时间:2019-05-25 14:24:14

标签: c

我写了代码,但是当我编译它时,似乎是一个错误的总和。您能帮我吗?

  

有n名学生参加本课程,该课程有5个部分使用带有原型int随机赋值的函数编写ac程序,该函数将每个学生随机分配给这5个部分中的一个,并打印出将哪个学生分配给哪个部分。在课程结束时,您应该报告每个部分有多少学生。您的函数将生成一个介于1到5之间的随机数。

#include<stdio.h>
#include<stdlib.h>
int fun(void){
return 1 +rand()%5;
}
int main(){
int numstu,count,a,sum1,sum2,sum3,sum4,sum5;
printf("Enter the number of students:");
scanf("%d",&numstu);
for(count=1;count<=numstu;count++){
    a=fun();
    printf("Student number %d assigned to %d\n",count,a);
    if (a==1)
    sum1=sum1+1;
    if (a==2)
    sum2=sum2+1;
    if (a==3)
    sum3=sum3+1;
    if (a==4)
    sum4=sum4+1;
    if (a==5)
    sum5=sum5+1;
}
printf("The number of student in section 1 is %d",sum1);
printf("The number of student in section 2 is %d",sum2);
printf("The number of student in section 3 is %d",sum3);
printf("The number of student in section 4 is %d",sum4);
printf("The number of student in section 5 is %d",sum5);
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您没有初始化任何变量,也没有执行任何错误检查。

执行以下操作:

int numstu = 0, count = 0, a = 0;
int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0;

并检查scanf的结果。

(为了便于阅读,对声明进行了分隔)