當前位置:首頁 » 編程語言 » 排序函數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 瀏覽:829
怎麼清理微信視頻緩存 發布: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