首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

输入2个一维数组,分别求数组平均值解决方法

2012-02-29 
输入2个一维数组,分别求数组平均值C/C++ code#include stdio.h#define N 5void main(){float average(fl

输入2个一维数组,分别求数组平均值

C/C++ code
#include <stdio.h>#define N 5void main(){    float average(float array[],int n);    float a[N],b[N];    int i,j;    {        printf("array a is:\n");        for(i=0;i<N;i++)        scanf("%d",&a[i]);    }    printf("\n");    {        printf("array b is:\n");        for(j=0;j<N;j++)        scanf("%d",&b[j]);    }    printf("\n");    printf("the average of class a is %6.2f\n",average(a,N));    printf("the average of class b is %6.2f\n",average(b,N));}float average(float array[],int n){    int i;    float aver,sum=array[0];    for(i=0;i<n;i++)        sum+=array[i];    aver=sum/n;    return(aver);}



运行结果都是0
哪里错了

[解决办法]
第一点错误: scanf("%d",&a[i]);改为scanf("%f",&a[i]);
第二点错误: float aver,sum=array[0];改为 float aver,sum=0;
[解决办法]
C/C++ code
//用C++改写了你的程序,供参考。建议用指针处理数组吧,简单些//可以在 scanf("%d",&b[j]); 语句循环后打印出数组的输入,看是否正常//float aver,sum=array[0];for(i=0;i<n;i++) ===>可以改为 float aver,sum=array[0];for(i=1;i<n;i++)#include <iostream>#define N 5using namespace std;double average(double *array,int n) //建议声明为double 类型,不用float类型{    int i;    double *p=array;//更新p的值,array这个数组指针不能改变值的    double sum=*p;    for(i=1;i<n;i++)        sum+=*(p+i);    return(sum/n);//返回平均值}int main(){    double a[N],b[N];    int i,j;        //输入需要计算平局数的数组    cout<<"请输入数组a的"<<N <<"个元素"<<endl;    for(i=0;i<N;i++) cin>>a[i];    cout<<"请输入数组b的"<<N <<"个元素"<<endl;    for(i=0;i<N;i++) cin>>b[i];    cout<<"the average of class a is :"<<average(a,N)<<endl;    cout<<"the average of class b is :"<<average(b,N)<<endl;    return 0;} 

热点排行