谁能帮我看看哪里出问题了?

img

```
#include<stdio.h>

#include<stdlib.h>

#define SIZE 15

double Average(int a[],int n);
int Array(int a[],int n);
int Input(int a[],int n) ;

int main()
{
double Average(int a[],int n);
int Array(int a[],int n);
int Input(int a[],int n);
int a[SIZE];
printf("请输入15名男生的年龄:\n");
Input(a,SIZE);
printf("输入正确的分别是%d\n",Array(a,SIZE));
Array(a,SIZE);
printf("这几名男生的平均年龄是:%f\n",Average(a,SIZE));
return 0;

int Input(int a[],int n)
{

 int i;
 for (i = 0;i < 15 ;i++)
 {
     scanf("%d",&a[i]);
}

}

double Average(int a[],int n)
{
int i;
int sum = 0;
int count = 0;
double average;
for(i = 0;i < 15;i++)
{
if(a[i]==0)
{
continue;
}
else
{
sum+=a[i];
count++;
}
}
average = (double)sum/count;
return average;
}
int Array(int a[],int n)

{
int i;
int count = 0;
for(i = 0;i < 15;i++)
{
if(a[i]==0)
{
continue;
}
else
{
printf("%-4d",a[i]);
count++;
}
}
return count;
}```

img


average函数内sum没有初始化,导致sum内初值为随机值
有帮助望采纳

有帮助望采纳

#include <stdio.h>
#define SIZE 15

int main()
{
    double Average(int a[], int n);
    int Array(int a[], int n);
    int Input(int a[], int n);
    int a[SIZE];
    printf("请输入15名男生的年龄:\n");
    Input(a, SIZE);
    printf("输入正确的分别是:\n");
    Array(a, SIZE);
    // Array(a, SIZE);
    printf("\n这几名男生的平均年龄是:%f\n", Average(a, SIZE));
    return 0;
}
int Input(int a[], int n)
{
    int i;
    for (i = 0; i < 15; i++)
    {
        scanf("%d", &a[i]);
    }
}

double Average(int a[], int n)
{
    int i;
    int sum = 0;
    int count = 0;
    double average;
    for (i = 0; i < 15; i++)
    {
        if (a[i] == 0)
        {
            continue;
        }
        else
        {
            sum += a[i];
            count++;
        }
    }
    average = (double)sum / count;
    return average;
}
int Array(int a[], int n)
{
    int i;
    int count = 0;
    for (i = 0; i < 15; i++)
    {
        if (a[i] == 0)
        {
            continue;
        }
        else
        {
            printf("%-4d", a[i]);
            count++;
        }
    }
    return count;
}

我总之大概调了一下,没特别在意功能正确性,如果有什么不对的地方在下面留言,我会进行修改

int Average(int a[],int n);函数返回值是int 型的,
函数体里变量 double average; 最后 return average; 是 double 型的,
所以把函数的返回值由int 改为 double .
函数里 average = (double)sum/count; 加入强制类型转换。

主函数里输出的平均分应该是:%f\n 才对。