题目描述
用指针实现:由键盘输入10个整数,将最大的调到最后,最小的调到最前。
输入
10个整数。
输出
最大的调到最后,最小的调到最前。
样例输入 复制
5 8 7 6 9 4 3 2 1 0
样例输出 复制
0 8 7 6 5 4 3 2 1 9
解析:这道题跟之前那道一样,不同的是用指针来实现换位,所以我就让p指向a[0],p指向a[9],分别找出最小值和最大值,然后用指针直接实现换位。详情见我代码
(如有不对欢迎指正)
#include <stdio.h>
int main()
{
int a[10];
int i;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
int *p=&a[0];
int m;
for(i=0;i<10;i++){
if(a[i]<*p){
m=i;
}
}
int temp=*p;
*p=a[m];
a[m]=temp;
int n;
int *q=&a[9];
for(i=0;i<9;i++){
if(a[i]>*q){
n=i;
}
}
temp=*q;
*q=a[n];
a[n]=temp;
for(i=0;i<10;i++){
printf("%d",a[i]);
if(i==9){
break;
}
printf(" ");
}
return 0;
}