//【程序38】
//题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
#include<stdio.h>
int main()
{
int a[20],i,*p,*max,*min,max_index,min_index,n,tmp;
//不允许把一个数赋予指针变量,故下面的赋值是错误的: int *p; p=1000;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
min=max=&a[0];
for(p=a;p<a+n;p++) //p=a 指针指向数组首元素的写法
{
if(*p<*min)
{
min=p; // 指针变量min 指向 指针变量p 所指向的地址
}
if(*p>*max)
{
max=p;
}
}
tmp=a[0];
a[0]=*max;
*max=tmp;
tmp=a[n-1];
a[n-1]=*min;
*min=tmp;
for(p=a;p<a+n;p++)
printf("%d ",*p);
return 0;
}
输入:
5
6 4 8 2 7
输出:
8 4 6 7 2