C语言-利用函数使最大值和最小值交换到最前和最后
Description
键盘输入10个整数,由被调函数找出最大、最小值并分别交换到数组的最前、最后,然后在主函数中输出交换后的数组内容。
注意:是被调函数交换位置,不是主函数
Input
输入10个数
Output
输出交换后的所有数据
Sample Input
4 6 2 9 0 8 1 7 3 5
Sample Output
9 6 2 4 5 8 1 7 3 0
#include <stdio.h>
#include <stdlib.h>
void x(int a[]){
int i,max,min,k=0,j=0,t,f;
max=min=a[0];
for(i=0;i<10;i++){
if(max<a[i]){
max=a[i];
k=i;
}
if(min>a[i]){
min=a[i];
j=i;
}
}
if((k==0&&j==9)||(j==0&&k==9)){
t=a[k];
a[k]=a[j];
a[j]=t;
}else if(k==9&&j!=0)
{
t=a[9];
a[9]=a[j];
a[j]=t;
f=a[0];
a[0]=a[j];
a[j]=f;
}else if(k!=9&&j==0){
t=a[0];
a[0]=a[k];
a[k]=t;
f=a[9];
a[9]=a[k];
a[k]=f;
}
else{
t=a[0];
a[0]=a[k];
a[k]=t;
f=a[9];
a[9]=a[j];
a[j]=f;
}
}
int main()
{
int a[10],i;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
x(a);
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}