思路:如果利用if進(jìn)行三個(gè)數(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)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、景東網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、景東網(wǎng)絡(luò)營(yíng)銷(xiāo)、景東企業(yè)策劃、景東品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供景東建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:aaarwkj.com
參考代碼:
#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
*/
第一個(gè)if,作用是:如果ab,就借用tem變量,把a(bǔ) 和b的值交換一下。確保交換之后a不大于b。
第二個(gè)if,執(zhí)行后,把a(bǔ)與c中較小的數(shù)放在a中,即a不大于c。
第三個(gè)if,確保了a不大于d。
通過(guò)運(yùn)行前三個(gè)if語(yǔ)句,把a(bǔ)bcd四個(gè)數(shù)中最小的數(shù)字放在了變量a中。
同樣,第四和第五個(gè)if語(yǔ)句,把bcd三個(gè)數(shù)中最小的數(shù)字放在了b變量中。
最后一個(gè)if,把小數(shù)放在c中,而把最大的數(shù)放到d中。
從而實(shí)現(xiàn)了排序的目的。
有什么問(wèn)題請(qǐng)留言。
常用的c語(yǔ)言排序算法主要有三種即冒泡法排序、選擇法排序、插入法排序。
一、冒泡排序冒泡排序:
是從第一個(gè)數(shù)開(kāi)始,依次往后比較,在滿(mǎn)足判斷條件下進(jìn)行交換。代碼實(shí)現(xiàn)(以降序排序?yàn)槔?/p>
#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])
{//前面一個(gè)數(shù)比后面的數(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;}}
二、選擇排序以升序排序?yàn)槔?/p>
就是在指定下標(biāo)的數(shù)組元素往后(指定下標(biāo)的元素往往是從第一個(gè)元素開(kāi)始,然后依次往后),找出除指定下標(biāo)元素外的值與指定元素進(jìn)行對(duì)比,滿(mǎn)足條件就進(jìn)行交換。與冒泡排序的區(qū)別可以理解為冒泡排序是相鄰的兩個(gè)值對(duì)比,而選擇排序是遍歷數(shù)組,找出數(shù)組元素與指定的數(shù)組元素進(jìn)行對(duì)比。(以升序?yàn)槔?/p>
#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;
}
三、快速排序
是通過(guò)一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對(duì)這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(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;
}
}
}
如果a=5 b=4 c=3,因?yàn)閍b 固執(zhí)行第一個(gè)if語(yǔ)句 執(zhí)行后a=4 b=5 c=3 t=5,進(jìn)入第二個(gè)if語(yǔ)句判斷a=4c=3故執(zhí)行第二個(gè)if語(yǔ)句,執(zhí)行后a=3 b=5 c=4 t=4 ,進(jìn)入第三個(gè)if語(yǔ)句判斷b=5c=4,故執(zhí)行第三個(gè)if語(yǔ)句,所以當(dāng)輸入為5,4,3時(shí) 執(zhí)行了三個(gè)if語(yǔ)句!
分享名稱(chēng):c語(yǔ)言排序算法if函數(shù) 如何用if函數(shù)排序
文章出自:http://aaarwkj.com/article6/dooogig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、App設(shè)計(jì)、網(wǎng)站排名、網(wǎng)頁(yè)設(shè)計(jì)公司、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)