用键盘任意输入10个数,将最大的数调整到最前面,最小的数调整到最后面

输入:任意十个数
示例:0 1 2 3 4 5 6 7 8 9
结果:9 1 2 3 4 5 6 7 8 0
想了好久了,不知道怎样将所有数一起比较,希望可以用代码解答一下疑惑


#include<stdio.h>
int main()
{
    int a[10],t,i,max=0,min=0;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
        if(a[i] > a[max]) 
            max=i;
        if(a[i] < a[min]) 
            min=i;
    }
    if(min == 0)    //当a[0]为最小值时,下一步max和0交换后,会将最小值交换到max位置,所以min需要修改为max
        min = max;

    t = a[max];
    a[max] = a[0];
    a[0] = t;
    
    t = a[min];
    a[min] = a[9];
    a[9] = t;

    for(i=0;i<10;i++)
        printf("%d ",a[i]);
    return 0;
}

循环比较,记录最大值、最小值所对应的位置,然后跟第一个和最后一个进行交换。

#include<stdio.h>
int main()
{
  int t[10],temp,i,max,min;
  max=0;min=0;
  for(i=0;i<10;i++)
    scanf("%d",&t[i]);
  for(i=1;i<10;i++){
    if(t[max]<t[i]) max=i;
    if(t[min]>t[i]) min=i;
  }

temp=t[max];
t[max]=t[0];
t[0]=temp;

temp=t[min];
t[min]=t[9];
t[9]=temp;

for(i=0;i<10;i++)
printf("%d ",t[i]);
  return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632