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

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

第1个回答  推荐于2016-09-25
#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);
if(*(p+i)<*min) *min=*(p+i);
aver+=*(p+i);
}
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 \n", *max,*min,aver);

}本回答被提问者采纳
第2个回答  2008-04-20
#include <stdio.h>

int main()
{
int i;
double nums[10], *ptr;
double max, min, avg;

ptr = nums;
for (i = 0; i < 10; ++i) {
scanf("%f", ptr++);
}

ptr = nums;
avg = max = min = *ptr++;
for (i = 1; i < 10; ++i) {
if (max < *ptr) {
max = *ptr;
}
if (min > *ptr) {
min = *ptr;
}
avg += *ptr++;
}
avg /= 10;

printf("max = %f, min = %f, avg = %f\n", max, min, avg);
return 0;
}
相似回答