编写一个程序通过指针变量找出一维数组中的最大值和最小值,并交换最大值与最小值的位置。
#include “stdio.h”
#include “conio.h”
#define N 5
void main( )
{ int a[N],*pmax,*pmin,i,t;
for (i=0;i<N;i++) scanf(“%d”,&a[i]);
pmax=pmin=a; /*假定第一个元素既是最大的,也是最小的*/
for (i=0;i<N;i++)
if (*pmax<a[i]) pmax=a+i; /*记当前最大值地址送pmax*/
else if (*pmin>a[i]) pmin=a+i;
printf(“max:a[%d]=%d,min:a[%d]=%d\n”,pmax-a,*pmax,pmin-a,*pmin);
if (pmax!=pmin){t=*pmax;*pmax=*pmin;*pmin=t;}
for (i=0;i<N;i++)
printf(“a[%d]=%d\n”,i,a[i]);
getch();
}
程序的执行结果是
32 3 34 234 25
max:a[3]=234,min:a[1]=3
a[0]=32
a[1]=234
a[2]=34
a[3]=3
a[4]=25
© 版权声明
部分文章来自网络,只做学习和交流使用,著作权归原作者所有,遵循 CC 4.0 BY-SA 版权协议。
THE END
暂无评论内容