第1个回答 2011-08-13
第一,int average(int a,int k) 这个函数参数列表有问题。本意是由主函数调用average函数传递参数分别是一个数组名和人数。那么此处第一个形参类型应该是int*而不是int。
改为int average(int* a,int k)
第二,主函数中n=average(a,k);之后应该有个输出n的语句否则没法看结束
printf("%d\n",n);
第2个回答 2011-08-13
int average( int * a,int k)
第3个回答 2011-08-13
int average(int a,int k)
实参和形参不匹配,改为:
int average(int a[],int k)
第4个回答 2011-08-13
int average(int a[],int k)
你传的是个数组,这里形参必须用数组接收实参。
第5个回答 2011-08-13
首先第一行那个库函数我没见过,不知道你怎么加上去的。去掉吧。
其次函数传参问题。main函数传递给average函数的是一个地址,即a的首地址。在average中,你应该定义一个指针指向它,你里面居然还用到数组,不知道是哪里来的。
修改后程序如下:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int average(int *a,int k)
{
int i,average,n,all;
n = 0;
all = 0;
for(i=0;i<k;i++)
{
all=all+*(a+i); /*用指针对应数组里面的内容*/
}
average=all/k;
for(i=0;i<k;i++)
{
if(*(a+i)>average) /*用指针对应数组里面的内容*/
n++;
}
return n;
}
int main(void)
{
int a[1000],k,n,i;
printf("input a number:");
scanf("%d",&k);
printf("input a:");
for(i=0;i<k;i++)
scanf("%d",&a[i]);
n=average(a,k);
printf("%d",n);
getch();
return 0;
}