用C语言编写输入8个成绩,求出平均数和及格人数,以下成绩有什么问题

#include<stdio.h>
int main()
{
float average(float array[8]);
int pass(float array[8]);
float score[8];
float a,b;
int i;
for(i=0;i<=7;i++)
scanf("%f",&score[i]);
printf("\n");
a=average(score);
b=pass(score);
printf("the average score is %.2f\n",a);
printf("the pass number is %d\n",b);
return 0;
}
float average(float array[8])
{
int i;
float aver,sum=0;
for(i=0;i<=7;i++)
{
sum=sum+array[i];
}
aver=sum/8;
return (aver);
}
int pass(float array[8])
{
int i,p=0;
for(i=0;i<=7;i++)
{
if((array[i])>=60)
{
p++;
}
}
return p;
}

#include<stdio.h>
int main()
{
float average(float array[8]);
int pass(float array[8]);
float score[8];
float a ; //a是平均数,采用float
int b ; //b是及格数,应该是int
int i;
for(i=0;i<=7;i++)
scanf("%f",&score[i]);
printf("\n");
a=average(score);
b=pass(score);
printf("the average score is %.2f\n",a);
printf("the pass number is %d\n",b); //如果b是float应该用%.0f
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-27
要将b定义为整型变量,因为pass函数返回值是int型
#include<stdio.h>
int main()
{
float average(float array[8]);
int pass(float array[8]);
float score[8];
float a;
int i,b;//将b定义为整型变量,因为pass函数返回值是int型
for(i=0;i<=7;i++)
scanf("%f",&score[i]);
printf("\n");
a=average(score);
b=pass(score);
printf("the average score is %.2f\n",a);
printf("the pass number is %d\n",b);
return 0;
}
float average(float array[8])
{
int i;
float aver,sum=0;
for(i=0;i<=7;i++)
{
sum=sum+array[i];
}
aver=sum/8;
return (aver);
}
int pass(float array[8])
{
int i,p=0;
for(i=0;i<=7;i++)
{
if((array[i])>=60)
{
p++;
}
}
return p;
}
第2个回答  2013-03-26
主函数倒数第二句,%d改成%f