运行下来平均数为0.00,求改这部分
#include
float average(float b[],int n)
{ int i;
float sum=b[0];
for(i=0;ireturn(sum/n);
}
int main()
{ int a,n,i;
float aver,b[100];
printf("输入学生人数:");
scanf("%d",&a);
for(n=1,i=0;n<=a;n++,i++)
{
printf("输入第%d个学生的成绩:",n);
scanf("%d",&b[i]);
}
aver=average(b,a);
printf("这%d个学生的期末成绩平均分为:%.2f",a,aver);
}
应该是因为for循环内scanf()获取学生的成绩用的修饰符为%d,而不是%f,所以数据出错了,把%d改为%f;然后把求平均分的average()函数的变量和sum初始化为0即可,修改如下:
#include<stdio.h>
float average(float b[],int n)
{ int i;
float sum=0;
for(i=0;i<n;i++)
sum+=b[i];
return(sum/n);
}
int main()
{ int a,n,i;
float aver,b[100];
printf("输入学生人数:");
scanf("%d",&a);
for(n=1,i=0;n<=a;n++,i++)
{
printf("输入第%d个学生的成绩:",n);
scanf("%f",&b[i]);
}
aver=average(b,a);
printf("这%d个学生的期末成绩平均分为:%.2f",a,aver);
}
#include <stdio.h>
float average(float b[], int n)
{
int i;
float sum = 0; // b[0];
for (i = 0; i < n; i++)
sum += b[i];
return (sum / n);
}
int main()
{
int a, n, i;
float aver, b[100];
printf("输入学生人数:");
scanf("%d", &a);
for (n = 1, i = 0; n <= a; n++, i++)
{
printf("输入第%d个学生的成绩:", n);
scanf("%f", &b[i]); // scanf("%d", &b[i]);
}
aver = average(b, a);
printf("这%d个学生的期末成绩平均分为:%.2f", a, aver);
}