首页 > 解决方案 > 关于随机数生成

问题描述

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

有 n 名学生参加课程,这门课程有五个部分,使用具有原型 int 随机分配的函数编写 ac 程序,该函数随机分配给每个学生五个部分中的一个,并在最后打印哪些学生被分配到哪个部分程序你应该报告每个部分有多少学生。您的函数将生成一个介于 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;
}

标签: c

解决方案


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

做这个:

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

并检查结果scanf

(为了便于阅读,声明分开了)


推荐阅读