当前位置:首页 » 编程语言 » 排序函数c语言

排序函数c语言

发布时间: 2025-05-15 13:06:28

c语言,用选择法对10个数排序,按正负数分开输出

选择排序:大循环i依次取元素和后面所有元素比较,找出其中最值,和当前i的元素交换。一次大循环交换一次。

程序思路:

一、排序函数:根据传参,实现降序升序两种功能。

二、数组输出:根据传参,实现正数和负数输出两种功能。

下面是代码:


#include <stdio.h>

void px(int nums[],int len,int t);//排序

void showNums(int nums[],int len,int t);//输出

int main()

{

int nums[10]={8,7,-1,2,-5,4,9,-3,-6,1};

printf("原数组:8,7,-1,2,-5,4,9,-3,-6,1 ");

printf("升序排列后: ");

px(nums,10,1);

printf("|---正数为:");

showNums(nums,10,1);

printf("|---负数为:");

showNums(nums,10,0);

//--------------------------------

printf("降序排列后: ");

px(nums,10,0);

printf("|---正数为:");

showNums(nums,10,1);

printf("|---负数为:");

showNums(nums,10,0);


}

void showNums(int nums[],int len,int t)//t=1输出正数,t=0输出负数

{

int i;

for(i=0;i<len;i++)

if((t && nums[i]>0)||(!t && nums[i]<0))

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

printf(" ");

}

void px(int nums[],int len,int t)//t=1升序,t=0降序

{

int i,j,k,m;

for(i=0;i<len-1;i++)

{

m=nums[i],k=i;

for(j=i+1;j<len;j++)

if((t && m>nums[j])||(!t && m<nums[j])) m=nums[j],k=j;

m=nums[i],nums[i]=nums[k],nums[k]=m;

}

}

⑵ 如何用函数实现三个数的排序(用的是C语言)

一:全局变量

#include<stdio.h>

inta,b,c;//定义三个全局变量

voidsort()//不需要参数
{
intt;
if(a>b)
{
t=a;a=b;b=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
if(a>b)
{
t=a;a=b;b=t;
}
}

intmain()
{
printf("输入:");
scanf("%d%d%d",&a,&b,&c);
sort();
printf("排序:%d<%d<%d ",a,b,c);
return0;
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:705
制作脚本网站 发布:2025-10-20 08:17:34 浏览:969
python中的init方法 发布:2025-10-20 08:17:33 浏览:677
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:830
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:737
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1076
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:308
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:188
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:875
python股票数据获取 发布:2025-10-20 07:39:44 浏览:829