用指针对一维数组的求最大最小值,平均值

如题所述

#include <stdio.h>

int main()

{

int i,sum,a[30],b,flag;

double q;

int *max1,*min1;

sum=0;flag=0;

for(i=0;i<10;i++)     //输入十个数

{

if(flag==1)

{

int *p=NULL,temp;//初始化指针

scanf("%d",&a[i]);

sum+=a[i];

p=&a[i];

if(*p>max1)//求最大值

{

max1=*p;

}

if(*p<min1)//求最小值

{

min1=*p;

}

}

if(flag==0)

{

scanf("%d%d",&a[0],&b);//求出第一和第二个值的最大值和最小值作为初始值

sum+=a[0];

sum+=b;

max1=a[0]>b?a[0]:b;

min1=a[0]>b?b:a[0];

flag=1;

}

}

q=(double)sum/10;//变格式(并求出平均值

printf("%d %d %.2lf",min1,max1,q);//输出(最小值,最大值,平均值)

}

扩展资料

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>

2、#include"文件名"

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-28

我可以帮你解决。代码如下:

#include <stdio.h>
#define N 5
int main()
{
int arr[N],i;
int *p;
int max,min,sum=0;
float ave;
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
max=min=arr[0];
for(p=arr,i=0;i<N;i++,p++)
{
if(max<*p)
max=*p;
if(min>*p)
min=*p;
sum+=*p;
}
ave=(1.0*sum)/N;
printf("最大值为: %d\n",max);
printf("最小值为: %d\n",min);
printf("平均值为: %.2f\n",ave);
return 0;
}

示例运行结果:

10 12 15 18 16

最大值为: 18

最小值为: 10

平均值为: 14.20

本回答被网友采纳
相似回答