c語言排序算法if函數(shù) 如何用if函數(shù)排序

c語言用if函數(shù)怎么排列任意輸出三個數(shù)的大???

思路:如果利用if進行三個數(shù)a,b,b的排序,則先利用if判斷a和b的大小,把小數(shù)賦值給a大數(shù)賦值給b,再利用if判斷c和b的大小,把小數(shù)賦值給b大數(shù)賦值給c,則c就是最大值,最后比較a和b的大小,把小數(shù)賦值給a大數(shù)賦值給b,則a就是最小數(shù),b是中間值,輸出a,b,c就是排序后數(shù)。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、成都做網(wǎng)站、景東網(wǎng)絡(luò)推廣、小程序開發(fā)、景東網(wǎng)絡(luò)營銷、景東企業(yè)策劃、景東品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供景東建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn

參考代碼:

#include?stdio.h

int?main()

{

int?a,b,c,t;

scanf("%d%d%d",a,b,c);?????

if(ab)//前判斷a和b的大小?

{t=b;b=a;a=t;}

if(bc)//再判斷b和c的大小?

{t=b;b=c;c=t;}

if(ab)//最后判斷a和b的大小?

{t=a;a=b;b=t;}

printf("%d%d%d",a,b,c);

return?0;

}?

/*

輸出:

5?1?9

159

*/

初學c語言,四個數(shù)排序,用if。中間的幾個if語句看不懂,能給我講講嗎?

第一個if,作用是:如果ab,就借用tem變量,把a 和b的值交換一下。確保交換之后a不大于b。

第二個if,執(zhí)行后,把a與c中較小的數(shù)放在a中,即a不大于c。

第三個if,確保了a不大于d。

通過運行前三個if語句,把abcd四個數(shù)中最小的數(shù)字放在了變量a中。

同樣,第四和第五個if語句,把bcd三個數(shù)中最小的數(shù)字放在了b變量中。

最后一個if,把小數(shù)放在c中,而把最大的數(shù)放到d中。

從而實現(xiàn)了排序的目的。

有什么問題請留言。

c語言三種排序

常用的c語言排序算法主要有三種即冒泡法排序、選擇法排序、插入法排序。

一、冒泡排序冒泡排序:

是從第一個數(shù)開始,依次往后比較,在滿足判斷條件下進行交換。代碼實現(xiàn)(以降序排序為例)

#includestdio.h

int main()

{

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

int temp;

for (int i = 0; i 10; i++)

{//循環(huán)次數(shù)

for (int j = 0; j 10 - i-1; j++)

{

if (array[j] array[j+1])

{//前面一個數(shù)比后面的數(shù)大時發(fā)生交換 temp = array[j];

array[j] = array[j+1];

array[j + 1] = temp;

}

}

} //打印數(shù)組 for (int i = 0; i 10; i++) printf("%2d", array[i]); return 0;}}

二、選擇排序以升序排序為例:

就是在指定下標的數(shù)組元素往后(指定下標的元素往往是從第一個元素開始,然后依次往后),找出除指定下標元素外的值與指定元素進行對比,滿足條件就進行交換。與冒泡排序的區(qū)別可以理解為冒泡排序是相鄰的兩個值對比,而選擇排序是遍歷數(shù)組,找出數(shù)組元素與指定的數(shù)組元素進行對比。(以升序為例)

#includestdio.h

int main()

{

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

int temp, index;

for (int i = 0; i 9; i++) {

index = i;

for (int j = i; j 10; j++)

{

if (array[j] array[index])

index = j;

}

if(i != index)

{

temp = array[i];

array[i] = array[index];

array[index] = temp;

}

for(int i=0;i10:i++)

printf("%2d"array[i])

return 0;

}

三、快速排序

是通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序序列。

void QuickSort(int* arr, int size)

{

int temp, i, j;

for(i = 1; i size; i++)

for(j=i; j0; j--)

{

if(arr[j] arr[j-1])

{

temp = arr[j];

arr[j]=arr[j-1];

arr[j-1]=temp;

}

}

}

c語言if函數(shù)

如果a=5 b=4 c=3,因為ab 固執(zhí)行第一個if語句 執(zhí)行后a=4 b=5 c=3 t=5,進入第二個if語句判斷a=4c=3故執(zhí)行第二個if語句,執(zhí)行后a=3 b=5 c=4 t=4 ,進入第三個if語句判斷b=5c=4,故執(zhí)行第三個if語句,所以當輸入為5,4,3時 執(zhí)行了三個if語句!

分享名稱:c語言排序算法if函數(shù) 如何用if函數(shù)排序
文章出自:http://muchs.cn/article6/dooogig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站營銷App設(shè)計、網(wǎng)站排名、網(wǎng)頁設(shè)計公司電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司