当前位置:首页 » 编程语言 » 排序函数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;
}

热点内容
html5整站源码 发布:2025-07-08 00:36:01 浏览:943
sql创建链接 发布:2025-07-08 00:08:38 浏览:398
ftp上传中断 发布:2025-07-08 00:08:37 浏览:641
linux云计算课程 发布:2025-07-08 00:07:23 浏览:23
安卓网易云怎么发布歌曲 发布:2025-07-07 23:42:29 浏览:626
安卓内存读取脚本 发布:2025-07-07 23:42:19 浏览:871
python27汉化 发布:2025-07-07 23:42:18 浏览:721
源码锁屏 发布:2025-07-07 23:26:52 浏览:944
手机版编程软件 发布:2025-07-07 22:57:22 浏览:122
linux下执行sh脚本 发布:2025-07-07 22:49:00 浏览:128