0

在下面的代码中的朋友,我试图获得一些浮点数的平均值......我手动尝试我的ans应该是分数,但这里它是圆角图......请帮助我。

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

   }
4

2 回答 2

1

一旦你修复了sumbash.d 指出的类型,你的答案仍然是错误的。 arr_1包含 6 个元素,但在计算平均值时除以 5。您需要将计算更改total

total = sum/6;

或者,更好的是,更改average

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_avg = average (arr_1, sizeof(arr_1)/sizeof(arr_1[0]));
于 2013-03-08T11:21:31.213 回答
1

为什么使用 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;

}    
于 2013-03-08T11:21:49.617 回答