Arithmetic

C语言-利用函数使最大值和最小值交换到最前和最后

PineappleCat · 5月9日 · 2019年 903次已读

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;

}

Click here to view the copyright notice of this site(点击此处查看本站版权声明)
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!