数组和指针区别不大
void exchange(int *a,int n)
{
int i,t,min = 0,max = 0;
for(i=1;i<n;i++)
{
if(*(a+i) > *(a+max))
max = i;
if(*(a+i) < *(a+min))
min = i;
}
if(min != 0)
{
t = *a;
*a = *(a+min);
*(a+min) = t;
}
if(max != n-1)
{
t = *(a+n-1);
*(a+n-i) = *(a+max);
*(a+max) = t;
}
}
void main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",a+i);
exchange(a,10);
for(i=0;i<10;i++)
printf("%d ",*(a+i));
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m
#include <stdio.h>void exchange(int a,int n){ int i,t,min=0,max=0; for(i=0;i<n;i++) { if(*(a+i)>(a+max)) max=i; if((a+i)<(a+min)) min=i; } if(min!=0) { t=*a; a=(a+min); (a+min)=t; } if(max!=n-1) { t=(a+n-1); (a+n-1)=(a+max); (a+max)=t; }}int main( ){ int a[10],i; for(i=0;i<10;i++) scanf("%d",a+i); exchange(a,10); for(i=0;i<10;i++) printf("%d",(a+i));}