C语言通过调换排序大小,c语言交换排序的问题?

本文介绍了一个简单的C语言程序,该程序能够接收用户输入的一组整数,并通过一次遍历找到最大值和最小值,进而对数组进行部分排序,即只将最大值放到数组末尾,最小值放到开头。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ad642b9abd73c6935dc0376ecfcc47cf.png

Lemon156

只需加个判断就可以了#include

int main(){

int g,i,k,l,m,n,temp;//g存储最大值的下标,l存储最小值的下标

int a[20];//定义数组最多存放20个元素

printf("input n (2~20) :   ");

scanf("%d",&n);

if(n<2||n>20){

printf("输入错误\n请输入n为2~20之间的数!!!\n");  //判断是否是输入2~20之间的数,不是则退出

return 0;

}

for(i=0;i

scanf("%d",&a[i]);  //存储输入的数

}

if(n==2){//如果是输入两个数,只需进行排序

if(a[1]>a[0]){

printf("%d  %d\n",a[0],a[1]);

}

else{

printf("%d  %d\n",a[1],a[0]);

}

}

else{//当n>2时

for(i=0;i

if(i==0){

m=a[i];

l=i;

k=a[i];

g=i;

}

if(a[i]>m){

m=a[i];

g=i;

}

if(a[i]

k=a[i];

l=i;

}

}

temp=a[0];

a[0]=a[l];  //最小值与第一个元素交换

a[l]=temp;

temp=a[n-1];

a[n-1]=a[g];    //最大值与最后一个元素交换

a[g]=temp;

printf("排序后:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n");

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值