输入10个实数存入一维数组,输出其中的最大值、最小值、平均值。要求用指向数组的指针变量来处理数组元素

输入10个实数存入一维数组,输出其中的最大值、最小值、平均值。要求用指向数组的指针变量来处理数组元素。

#include <iostream.h>
#define N 10
double max(double *p)
{
double max=*p;
for(int i=1;i<N;i++)
if(max<p[i])
max=p[i];
return max;
}
double min(double *p)
{
double min=*p;
for(int i=1;i<N;i++)
if(min>p[i])
min=p[i];
return min;
}
double average(double *p)
{
double sum=0;
for(int i=0;i<N;i++)
sum+=p[i];
return sum/N;
}

void main()
{
double *p;
p=new double[N];
cout<<"请输入"<<N<<"个实数:";
for(int i=0;i<N;i++)
cin>>p[i];
cout<<"最大数为:"<<max(p);
cout<<"最小数为:"<<min(p);
cout<<"平均值为:"<<average(p)<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-18
#include "stdio.h"

input(int N, float *p)
{
int i;
for(i=0;i<N;i++)
{ printf("please input the %d number:",i);

scanf("%f", &*(p+i));

}
}

float search(int N, float *p, float *max, float *min )
{ int i;

float aver;

aver=*max=*min=*p;

for(i=1;i<N;i++)

{if(*(p+i)>* max) *max=*(p+i);<br> if(*(p+i)<*min)<br> *min=*(p+i);<br> <br> aver+=*(p+i);<br> }

return aver/N;

}

main()
{ int i ;
float aa[10], *p,*max,*min,ma,mi ,aver;
p=aa;
max=&ma;
min=&mi;
input(10,aa);
aver=search(10, p ,max,min);
puts("*********the search result**********");
printf(" max=%8.2f , min=%8.2f,
average=%8.2f
\
", *max,*min,aver);

}本回答被网友采纳
第2个回答  2017-05-30
#include<stdio.h>
#define N 10
int main()
{
    int str[N],*p,max,min;float average=0.00;
    printf("enter the integer array:\n");
    for(p=str;p<str+N;p++){
        scanf("%d",p);      
    }
    max=str[0],min=str[0];
    for(p=str;p<str+N;p++){  
        if(max<*p)
            max=*p;
        if(min>*p)
            min=*p;
        average+=*p;
    }
    average/=N;
    printf("max=%d,min=%d,average=%.2lf\n",max,min,average);
    return 0;
}