c语言求10个数的平均数函数

为什么输入会循环?
#include <stdio.h>#include <conio.h>int sum(int a[10]){ int sum=0,i; for(i=1;i<=10;i++) sum+=a[i]; return sum;}float average(int a[10]){ int s=0,i; float average; for(i=1;i<=10;i++) s+=a[i]; average=s/10.0; return average;}main() { int i,a[10]; for(i=1;i<=10;i++){ printf("a[%d]=",i); scanf("%d",&a[i]);} printf("sum=%d\n",sum(a)); printf("average=%f",average(a)); getch();

}

数组下标是从0开始,不是从1开始。

a的下标是从0-10,这个改掉就可以了。

#include <stdio.h>
#include <conio.h>
int sum(int a[10])
{
    int sum=0,i;
    for(i=0; i<10; i++)
        sum+=a[i];
    return sum;
}
float average(int a[10])
{
    int s=0,i;
    float average;
    for(i=0; i<10; i++)
        s+=a[i];
    average=s/10.0;
    return average;
}
main()
{
    int i,a[10];
    for(i=0; i<10; i++)
    {
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
    }
    printf("sum=%d\n",sum(a));
    printf("average=%f",average(a));
    getch();
}

温馨提示:答案为网友推荐,仅供参考
相似回答