我的期末作业,最后求百分比得出来的是负值,还有两个警告搞不掉,求大神指点
这是我的期末作业,录入少于30人的成绩,输入负值时结束录入,然后进行各种统计一下是运行结果
请按学号输入学生0-100之间的成绩,回车键确认,输入负值时输入完成
2014101:89
2014102:79
2014103:69
2014104:59
2014105:49
2014106:39
2014107:-1
不及格人数为:3
不及格的有:
2014104:59
2014105:49
2014106:39
班级平均分为:64
及格的同学有:
2014101:89
2014102:79
2014103:69
各阶段所占百分比:
60分一下:-13%
60-69分:-13%
70-79分:-13%
80-89分:-13%
90-99分:-13%
100分:-13%
Press any key to continue
以下是我的程序
#include"stdio.h"
int aver(int a,int b)
{int aver;
aver=a/b;
return aver;
}
void bi(int a[],int b[])
{int i;
printf("及格的同学有:\n");
for(i=0;i<30;i++)
if(a[i]>=60)
printf("%d:%d\n",b[i],a[i]);
}
fen(int a[])
{
int i,stu[6];
for(i=0;i<30;i++)
if(a[i]<60||a[i]>0)stu[0]=stu[0]+1;
else if(a[i]<70)stu[0]=stu[1]+1;
else if(a[i]<80)stu[0]=stu[2]+1;
else if(a[i]<90)stu[0]=stu[3]+1;
else if(a[i]<100)stu[0]=stu[4]+1;
else if(a[i]=100)stu[0]=stu[5]+1;
return stu[6];
}
void main()
{
int i,b,d=0,sum=0,score[30],count=0,stu2[6];
long int j,num[30];
printf("请按学号输入学生0-100之间的成绩,回车键确认,输入负值时输入完成\n");
for(j=2014101,i=0;j<=2014130,i<30;i++,j++)
num[i]=j;
for(i=0;i<30;i++)
{printf("%d:",num[i]);
scanf("%d",&b);
d++;
score[i]=b;
if(b<60&&b>0)
count++;
if(b<0)
break;
sum+=b;}
printf("不及格人数为:%d\n不及格的有:\n",count);
for(i=0;i<30;i++)
if(score[i]<60&&score[i]>0)
printf("%d:%d\n",num[i],score[i]);
printf("班级平均分为:%d\n",aver(sum,d-1));
bi(score,num);
stu2[6]=fen(score);
printf("各阶段所占百分比:\n");
printf("60分一下:%d%%\n",100*stu2[0]/(d-1));
printf("60-69分:%d%%\n",100*stu2[1]/(d-1));
printf("70-79分:%d%%\n",100*stu2[2]/(d-1));
printf("80-89分:%d%%\n",100*stu2[3]/(d-1));
printf("90-99分:%d%%\n",100*stu2[4]/(d-1));
printf("100分:%d%%\n",100*stu2[5]/(d-1));
}
还有两个警告,完全搞不懂
D:\green\VC6\Common\MSDev98\Bin\888.c(19) : warning C4700: local variable 'stu' used without having been initialized
D:\green\VC6\Common\MSDev98\Bin\888.c(51) : warning C4700: local variable 'stu2' used without having been initialized