不是你的代码有问题,这个数实在太小了,有图有真相。wintc下乱码,请原谅。我加了几段输出数据用以分析。
#include
#define size 30
int i,num[size],n;
float score[size],ave;
void bujige()
{ int count=0;
printf("不及格的人为:\n");
for(i=0;i { if(score[i]<60) { count++; printf("学号:%d 成绩:%f\n",num[i],score[i]); } } printf("不及格总人数为:%d人\n",count); } void gaofen() { int count=0; printf("成绩高于或等于全班平均成绩的有:\n"); for(i=0;i { if(score[i]>=ave) { count++; printf("学号:%d 成绩:%f\n",num[i],score[i]); } } printf("成绩高于或等于全班平均成绩的总人数为:%d人\n",count); } void bili() { int stu[6],g; float bl[6]; for(i=0;i<6;i++) { stu[i]=0; } for(i=0;i { if(score[i]<60) { stu[0]++; } else { g=(score[i]-50)/10; printf("%d\n",g); stu[g]++; } } for(i=0;i<6;i++) { bl[i]=stu[i]/n; printf("%f\n",bl[i]); } printf("成绩小于60分的比例为:%f\n",bl[0]); printf("成绩在60到69分的比例为:%f\n",bl[1]); printf("成绩在70到79分的比例为:%f\n",bl[2]); printf("成绩在80到89分的比例为:%f\n",bl[3]); printf("成绩在90到99分的比例为:%f\n",bl[4]); printf("成绩为100的比例为:%f\n",bl[5]); } main() { float a=0; printf("请输入学生的个数:"); scanf("%d",&n); printf("请按照学好输入对应学生的成绩:\n"); for(i=0;i { scanf("%f",&score[i]); num[i]=i+1; if(score[i]<0) { break; } } for(i=0;i { a=a+score[i]; } ave=a/n; bujige(); gaofen(); bili(); getch(); } 当除不尽的时候自动归0了吧,好像是我用的编译器太渣了,看了你前面的调试,文件名后缀用.C,你用的是devc++吧?这个只有标准库,建议用VS2010
#include
#define size 30
int main()
{
int i,n,num[30];
float a=0,ave,score[size];
void bujige(float *score,int n) ;
void gaofen(float *score,int n,int ave);
void bili(float *score,int n);
printf("请输入学生的个数:");
scanf("%d",&n);
printf("请按照学号输入对应学生的成绩:\n");
for(i=0;i
scanf("%f",&score[i]);
num[i]=i+1;
if(score[i]<0)
{
break;
}
}
for(i=0;i
a+=score[i];
}
ave=a/size;
bujige(score,n);
gaofen(score,n,ave);
bili(score,n);
return 0;
}
void bujige(float *score,int n)
{
int i,count=0;
printf("不及格的人为:\n");
for(i=0;i
if(score[i]<60)
{
count++;
printf("学号:%d 成绩:%f\n",i+1,score[i]);
}
}
printf("不及格总人数为:%d人\n",count);
}
void gaofen(float *score,int n,int ave)
{
int i,count=0;
printf("成绩高于或等于全班平均成绩的有:\n");
for(i=0;i
if(score[i]>=ave)
{
count++;
printf("学号:%d 成绩:%f\n",i+1,score[i]);
}
}
printf("成绩高于或等于全班平均成绩的总人数为:%d人\n",count);
}
void bili(float *score,int n)
{
int i,stu[6],g;
float bl[6];
for(i=0;i<6;i++)
{
stu[i]=0;
}
for(i=0;i
if(score[i]<60)
{
stu[0]++;
}
else
{
g=(score[i]-50)/10;
stu[g]++;
}
}
for(i=0;i<6;i++)
{
bl[i]=stu[i]/n;
}
printf("成绩小于60分的比例为:%f\n",bl[0]);
printf("成绩在60到69分的比例为:%f\n",bl[1]);
printf("成绩在70到79分的比例为:%f\n",bl[2]);
printf("成绩在80到89分的比例为:%f\n",bl[3]);
printf("成绩在90到99分的比例为:%f\n",bl[4]);
printf("成绩为100的比例为:%f\n",bl[5]);
}
#include
#define size 30
int i,num[size],n;
float score[size],ave;
void bujige()
{ int count=0;
printf("不及格的人为:\n");
for(i=0;i
{ count++;
printf("学号:%d 成绩:%f\n",num[i],score[i]);
}
}
printf("不及格总人数为:%d人\n",count);
}
void gaofen()
{ int count=0;
printf("成绩高于或等于全班平均成绩的有:\n");
for(i=0;i
if(score[i]>=ave)
{
count++;
printf("学号:%d 成绩:%f\n",num[i],score[i]);
}
}
printf("成绩高于或等于全班平均成绩的总人数为:%d人\n",count);
}
void bili()
{
int stu[6],g;
float bl[6];
for(i=0;i<6;i++)
{
stu[i]=0;
}
for(i=0;i
if(score[i]<60)
{
stu[0]++;
}
else
{
g=(int)(score[i]-50)/10;
stu[g]++;
}
}
for(i=0;i<6;i++)
{
bl[i]=(float)stu[i]/n;
}
printf("成绩小于60分的比例为:%f\n",bl[0]);
printf("成绩在60到69分的比例为:%f\n",bl[1]);
printf("成绩在70到79分的比例为:%f\n",bl[2]);
printf("成绩在80到89分的比例为:%f\n",bl[3]);
printf("成绩在90到99分的比例为:%f\n",bl[4]);
printf("成绩为100的比例为:%f\n",bl[5]);
}
void main()
{
float a=0;
printf("请输入学生的个数:");
scanf("%d",&n);
printf("请按照学好输入对应学生的成绩:\n");
for(i=0;i
scanf("%f",&score[i]);
num[i]=i+1;
if(score[i]<0)
{
break;
}
}
for(i=0;i
a=a+score[i];
}
ave=a/n;
bujige();
gaofen();
bili();
}