dve-c++求帮改代码

运行下来平均数为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);
}


img


#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);
}