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

热点内容
主存储器属于外存储器吗 发布:2025-05-15 16:54:00 浏览:754
显示屏看股票都有哪些配置 发布:2025-05-15 16:52:39 浏览:397
android行情 发布:2025-05-15 16:52:25 浏览:437
活动上线前服务器配置要注意什么 发布:2025-05-15 16:38:43 浏览:949
王者荣耀安卓区怎么免费转苹果 发布:2025-05-15 16:18:02 浏览:762
威朗pro高配都有哪些配置 发布:2025-05-15 15:57:09 浏览:958
数据库分页查询数据 发布:2025-05-15 15:45:13 浏览:521
phpmyadmin上传限制 发布:2025-05-15 15:39:52 浏览:432
如何给手机配置真正的电脑 发布:2025-05-15 15:39:52 浏览:765
抽脚本命令 发布:2025-05-15 15:39:45 浏览:662