C语言编函数求一维数组一段数字的平均值

如题所述

第1个回答  2015-01-03
#include<stdio.h>
double avg(int A[],int s,int e)
{
    double sum=0;
    for(int i=s;i<=e;i++)
    {
        sum+=A[i];
    }
    sum/=(e-s+1);
    return sum;
}
int main()
{
    int N,start,end, i;
    do{
    printf("请输入数组元素个数(1<=N<=100):");
scanf("%d",&N);
    }while(N<1 || N>100);   

 //int a[100];
int *a = new int[N];
    for(i=0;i<N;i++)
    {
        a[i] = 0;
    }
    printf("请依次输入数组元素的值,以空格或Tab分隔:");
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
    }
    do{
    printf("您希望从第几元素开始求平均值(0<=start<=%d):",N);
scanf("%d",&start);
    }while(start<1 || start>N+1);
    
    do{
printf("到第几个结束(%d<=end<=%d):",start,N);
scanf("%d",&end);
    }while(end < start || end > N+1);
    
    printf("平均值是:%lf\n",avg(a,start,end));
    return 0;
}

第2个回答  2015-01-03
#include<stdio.h>//还有什么问题?
int a[101];
double avg(int A[],int s,int e)
{
double sum=0;
for(int i=s;i<=e;i++)
{
sum+=a[i];
}
sum/=(e-s+1);
return sum;
}
int main()
{
int Hive,start,end;
scanf("%d",&Hive);
for(int i=0;i<Hive;i++)
{
scanf("%d",&a[i]);
}
scanf("%d%d",&start,&end);
printf("%lf",avg(a,start,end));
return 0;
}

本回答被提问者采纳
相似回答