C语言最大值和最小值排序问题输入10个整数,将其中最小的数与第一个数兑换,把最大的数与最后一个数兑换.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 19:50:08

C语言最大值和最小值排序问题输入10个整数,将其中最小的数与第一个数兑换,把最大的数与最后一个数兑换.
C语言最大值和最小值排序问题
输入10个整数,将其中最小的数与第一个数兑换,把最大的数与最后一个数兑换.

C语言最大值和最小值排序问题输入10个整数,将其中最小的数与第一个数兑换,把最大的数与最后一个数兑换.
#include <stdio.h>

int mian()
{
    int i,x,y,min,max;
    int a[10]={0};
    printf("please input 10 num:\n");
    //循环输入10个整数
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    //假设最大最小值
    min=a[0];
    max=a[0];
    //循环遍历等到最大和最小值
    for(i=0;i++;i<10)
    {
        if(min>a[i])
            min=a[i];
        if(max<a[i])
            max=a[i];
    }
    //取得最大值和最小值的下标位置(仅适用于最大值和最小值有且仅有一个的情况)
    for(i=0;i++;i<10)
    {
        if(min==a[i])
            x=i;//最小值位置
        if(max==a[i])
            y=i;//最大值位置
    }
    //交换最大和和最后一个数,交换最小值和第一个数
    a[1]=a[1]+a[x];
    a[x]=a[1]-a[x];
    a[1]=a[1]-a[x];
    a[9]=a[9]+a[y];
    a[x]=a[9]-a[y];
    a[9]=a[9]-a[y];
    //输出交换位置后的数组a
    for(i=0;i++;i<10)
    {
        printf("a[%d]=%d\n",i,a[i]);
    }
    return 0;
}