我写了代码,但是当我编译它时,似乎是一个错误的总和。您能帮我吗?
有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;
}
答案 0 :(得分:2)
您没有初始化任何变量,也没有执行任何错误检查。
执行以下操作:
int numstu = 0, count = 0, a = 0;
int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0;
并检查scanf
的结果。
(为了便于阅读,对声明进行了分隔)