-
第一類冒泡:
假如輸入a,b,c,d,由小到大輸出四個(gè)數(shù)字
a和b比,b和c比,c和d比
特點(diǎn):最大值出現(xiàn)在最后
邏輯圖
代碼如下
#include <stdio.h>
int main()
{
//接收用戶輸入的四個(gè)整數(shù),排序后輸出
//1.定義四個(gè)變量,用于接收用戶輸入的整數(shù)
int a,b,c,d;
a = -1,b = -1,c = -1,d = -1;
//2.提示用戶輸入三個(gè)整數(shù),用逗號(hào)隔開
printf("請(qǐng)輸入四個(gè)整數(shù),用逗號(hào)隔開:\n");
//3.輸入三個(gè)整數(shù)
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
//4.排序(相鄰的兩個(gè)數(shù)比較,交換位置即可)
//特點(diǎn):經(jīng)過一輪比較最大的數(shù)會(huì)出現(xiàn)在最后
//四個(gè)數(shù)比大小只需要進(jìn)行三輪比較即可
//定義一個(gè)變量作為容器,作為兩兩交換的中間件
int temp = -1;
if(a>b)
{
temp = a;
a = b;
b = temp;
}
if(b>c)
{
temp = b;
b = c;
c = temp;
}
if(c>d)
{
temp = c;
c = d;
d = temp;
}
//第二輪比較
if(a>b)
{
temp = a;
a = b;
b = temp;
}
if(b>c)
{
temp = b;
b = c;
c = temp;
}
//第三輪比較
if(a>b)
{
temp = a;
a = b;
b = temp;
}
//輸出(從小到大)
printf("四個(gè)整數(shù)由小到大為:%d,%d,%d,%d",a,b,c,d);
return 0;
}
-
第二類冒泡
假如輸入a,b,c,d,由小到大輸出四個(gè)數(shù)字
第一個(gè)數(shù)依次和后面的比,小則交換
a和b比,a和c比,a和d比
特點(diǎn):最小值出現(xiàn)在最前面
邏輯圖
代碼如下
#include <stdio.h>
int main()
{
//提示用戶輸入四個(gè)數(shù)字
printf("請(qǐng)輸入四個(gè)數(shù)字,逗號(hào)隔開,回車結(jié)束\n");
//定義四個(gè)變量接收用戶輸入的數(shù)據(jù)
int a = -1,b = -1,c = -1,d = -1;
//接收用戶輸入的四個(gè)數(shù)字
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
//排序(第一個(gè)數(shù)分別和后面三個(gè)數(shù)比,小就交換 特點(diǎn):最小的數(shù)會(huì)出現(xiàn)在最左邊)
//定義一個(gè)容器,用于交換
int temp = -1;
if(a > b)
{
temp = a;
a = b;
b = temp;
}
if(a > c)
{
temp = a;
a = c;
c = temp;
}
if(a > d)
{
temp = a;
a = d;
d = temp;
}
//第二輪比較
if(b > c)
{
temp = b;
b = c;
c = temp;
}
if(b > d)
{
temp = b;
b = d;
d = temp;
}
//第三輪比較
if(c > d)
{
temp = c;
c = d;
d = temp;
}
//輸出
printf("%d,%d,%d,%d",a,b,c,d);
return 0;
}