思路:如果利用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
*/
第一個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語言排序算法主要有三種即冒泡法排序、選擇法排序、插入法排序。
一、冒泡排序冒泡排序:
是從第一個數(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;
}
}
}
如果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)