-2

我尝试运行它,但它没有做它应该做的事情。我期望 15.53 但得到 0。我不确定错误出在哪里,请有人帮助我。

1) 编写一个主模块,并在其中声明并完全初始化一个由 15 个整数组成的本地数组、一个由 20 个字符(不是字符串)组成的本地数组和一个由 10 个浮点数组成的本地数组。使用不同的值来初始化每个数组(不要使用 0、空格或重复任何值)。此外,请确保三个数组中的每一个中的值都按排序顺序(按升序排序)。

2) 编写一个名为 Display 的模块,它将整数值数组和数组的大小作为参数,然后将数组的内容以整洁的格式输出到屏幕上。数组中的每个值都必须用一个空格分隔。例如 10 20 30...

3) 在您的主模块中,调用 Display 函数并使用它来显示您之前声明和初始化的 15 值整数数组的内容。

4) 编写一个名为 AVERAGE 的模块,它将整数值数组和数组的大小作为参数,然后计算并返回这些值的平均值。随意在您的答案中使用递归或迭代。还记得声明你的函数原型。

5) 在您的主模块中,调用 AVERAGE 函数并使用它计算您之前声明和初始化的 15 值整数数组的平均值,然后显示结果。函数返回的结果将显示在主模块中,而不是函数中。

#include<stdio.h>

void display(int[] ,int );    
float average(int[], int );

void main()
{   
  float avg;

  int lego[15]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};

  char muzik[20]=
    {'a','b','c','d','e','f','g','h','i','j',
     'k','l','m','n','o','p','q','r','s','t'};

  float blu[10]={'1.2','1.3','1.4','1.5','1.6','1.7','1.8','1.9','2.0','2.1'};

  display(lego,15);

  average(lego,15);
  avg=average(lego,15);
  printf("Average = %.2f",avg); 
}


void display(int lego[], int Se)
{
    int w;

    for(w=0;w<Se;++w)

        printf("%d ",lego[w]);
}


float average(int lego[], int b)
{
    int s, sum=0;
    float avg;

    for(s=0;s<b;++s) 

    {
        sum+=lego[s];
    }

    avg=sum/b;
    return avg;
}
4

1 回答 1

2

这条线有问题:

printf("Average = %.2f",avg);

格式字符串%.2f告诉printf()期望一个float值,但您传递的是int.

您可以更改avgfloat变量,但您还需要更改average()函数以执行float数学运算并返回float结果。

于 2013-10-03T17:37:51.047 回答