指针变量找出一维数组中的最大值和最小值

编写一个程序通过指针变量找出一维数组中的最大值和最小值,并交换最大值与最小值的位置。

 

 

#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

© 版权声明
THE END
喜欢就支持以下吧
点赞22 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容