关于C语言

#include <stdio.h>
#define N 10
float sum(float a[N])
{
float b=0;
int i;
for (i=0;i<N;i++)
{
b=b+a[i];
}
return b;
}
main()
{
float a[N];
int i;
float c;
for(i=0;i<N;i++)
{
printf("Input the %dth number:",i+1);
scanf("%f",a[i]);
}
c=sum(a[N]);
printf("Answer is:%f",c);
getch();
}

为什么sum() 函数不能调用

第1个回答  2007-06-01
2个错误
第一,scanf是通过地址传递
第二,sum接收的是数组的地址,不是元素
#include <stdio.h>
#define N 10
float sum(float a[N])
{
float b=0;
int i;
for (i=0;i<N;i++)
{
b=b+a[i];
}
return b;
}
main()
{
float a[N];
int i;
float c;
for(i=0;i<N;i++)
{
printf("Input the %dth number:",i+1);
scanf("%f",&a[i]);
}
c=sum(a);
printf("Answer is:%f",c);
getch();
}本回答被提问者采纳
第2个回答  2007-06-01
改一下
#include <stdio.h>
#define N 10
float sum(float *a)
{
float b=0;
int i;
for (i=0;i<N;i++)
{
b=b+a[i];
}
return b;
}
main()
{
float a[N];
int i;
float c;
for(i=0;i<N;i++)
{
printf("Input the %dth number:",i+1);
scanf("%f",a[i]);
}
c=sum(a);
printf("Answer is:%f",c);
getch();
}
第3个回答  2007-06-01
调用的时候传入的应该是数组的地址,即:
c=sum(a);
第4个回答  2020-01-13
相似回答