```
#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;
}```
有帮助望采纳
#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 才对。