C 试着找出平均分数…但弄错了

C 试着找出平均分数…但弄错了,c,C,朋友们,在下面的代码中,我试图得到一些浮点平均值…我手动尝试了我的ans应该是分数,但这里它是四舍五入的fig…请帮助我 #include <stdio.h> #include <stdlib.h> //finding out the average marks for students .... float average (float []); int main() { int i; float total_avg=0; float a

朋友们,在下面的代码中,我试图得到一些浮点平均值…我手动尝试了我的ans应该是分数,但这里它是四舍五入的fig…请帮助我

#include <stdio.h>
#include <stdlib.h>

//finding out the average marks for students ....

float average (float []);

int main()
{
    int i;
    float total_avg=0;

    float arr_1[] = {10.2, 22.9, 36.04, 89.1, 94.1, 10.8,};

    for(i=0; i<6; i++)
             printf("%2f\n",arr_1[i]);
             printf("\n\n");


     total_avg = average (arr_1);   
     printf("Total average : %3f\n",total_avg);     


    system("PAUSE");
    return 0;

    }

float average (float a[5])
{
      int sum = 0, i;
      float total;

      for(i=0; i<6; i++)
      {
           sum = sum+a[i];
           }
     total = sum/5;

      return total;

   }
#包括
#包括
//找出学生的平均分数。。。。
浮动平均(浮动[]);
int main()
{
int i;
浮动总平均值=0;
浮动arr_1[]={10.2,22.9,36.04,89.1,94.1,10.8,};

对于(i=0;i一旦你确定了bash.d指出的
sum
的类型,你的答案仍然是错误的。
arr_1
包含6个元素,但在计算平均值时你要除以5。你需要将
total
的计算改为

total = sum/6;
float average(float* a, int num_elems)
{
    float sum = 0
    int i;
    for(i=0; i<num_elems; i++) {
        sum += a[i];
    }
    return sum/num_elems;
}
或者,最好将
average
更改为

total = sum/6;
float average(float* a, int num_elems)
{
    float sum = 0
    int i;
    for(i=0; i<num_elems; i++) {
        sum += a[i];
    }
    return sum/num_elems;
}

为什么要使用int作为求和?请改用
float

float average (float a[5])
{

  int sum = 0,
  float total, sum = 0.0f;

  for(i=0; i<6; i++)
  {
       sum = sum+a[i];
       }
 total = sum/5;

  return total;

}    
浮动平均值(浮动a[5])
{
整数和=0,
浮动总额,总和=0.0f;

对于(i=0;它有很多…我想我需要正确地做我的基础…谢谢!