日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

生活中c语言排序案例,C语言之数字排序-基于冒泡排序法的一些案例(对未知数量的数字进行排序)...

發(fā)布時(shí)間:2024/7/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生活中c语言排序案例,C语言之数字排序-基于冒泡排序法的一些案例(对未知数量的数字进行排序)... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C語言之?dāng)?shù)字排序

在學(xué)習(xí)C語言的時(shí)候遇到了幾個(gè)比較基礎(chǔ)的排序問題,又結(jié)合了之前的處理方法。覺得在這個(gè)需要再系統(tǒng)地進(jìn)行復(fù)習(xí)一下。

當(dāng)我們?cè)诔鯇W(xué)C語言的時(shí)候,我們都會(huì)結(jié)合三個(gè)數(shù)字的排序來理解計(jì)算機(jī)處理問題的方式:

計(jì)算機(jī)不會(huì)像人一樣直觀地去判斷三個(gè)數(shù)的大小,在計(jì)算機(jī)對(duì)數(shù)字比較的時(shí)候,需要對(duì)數(shù)字進(jìn)行兩兩比較,之后才能得出一串?dāng)?shù)字的大小。

比如在對(duì)a,b,c三個(gè)數(shù)字進(jìn)行比較的時(shí)候,就要分別進(jìn)行兩兩之間的比較:

【案例一】

題目描述

本題要求將輸入的任意3個(gè)整數(shù)從小到大輸出。

輸入

輸入在一行中給出3個(gè)整數(shù),其間以空格分隔。

輸出

在一行中將3個(gè)整數(shù)從小到大輸出,其間以“ ”隔開。

樣例輸入

4 2 8

樣例輸出

2 4 8

代碼

#includeint main()

{

int a,b,c;

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

if(a

這么一段復(fù)雜、臃腫的代碼,僅僅實(shí)現(xiàn)了三個(gè)數(shù)字之間的比較。這算得上是一種簡(jiǎn)單粗暴的方法。雖然顯得很笨重,但是卻很容易讓人理解,并很容易將代碼實(shí)現(xiàn)。

但是,這樣的處理方式僅僅局限于對(duì)三個(gè)數(shù)字的比較,如果再多出幾位,這種方法將變得很不現(xiàn)實(shí)。

所以,我們需要一種更加簡(jiǎn)捷的方式去處理這個(gè)問題。

觀察上述的代碼,我們發(fā)現(xiàn),每一次大的if語句中我們都先確定了最大的那個(gè)數(shù),然后再進(jìn)行后兩位數(shù)的比較。那么,我們能不能使用一種方法,每一次將數(shù)字串的最大的一個(gè)數(shù)字選出來,放在第一位,然后不再處理這個(gè)數(shù)字,再將以后的數(shù)字進(jìn)行選擇,每次將最大的數(shù)字放在第一位。于是便解決了多個(gè)數(shù)字的排序問題,這個(gè)方法就叫做 冒泡排序法。

【案例二】

題目描述

明明想在學(xué)校中請(qǐng)一些同學(xué)一起做一項(xiàng)問卷調(diào)查,為了實(shí)驗(yàn)的客觀性,他先用計(jì)算機(jī)生成了N個(gè)隨機(jī)整數(shù),對(duì)于其中重復(fù)的數(shù)字,只保留一個(gè),把其余相同的數(shù)去掉,然后再把這些數(shù)從小到大排序,按照排好的順序去找同學(xué)做調(diào)查。請(qǐng)你協(xié)助明明完成“去重”與“排序”的工作。

輸入

數(shù)據(jù)有多組,對(duì)于每組數(shù)據(jù):

輸入有2行,第1行為1個(gè)正整數(shù)N,表示所生成的隨機(jī)數(shù)的個(gè)數(shù)。

第2行有N個(gè)用空格隔開的正整數(shù),為所產(chǎn)生的隨機(jī)數(shù)。

[數(shù)據(jù)范圍]

0輸出

對(duì)于每組數(shù)據(jù):

輸出有2行,第1行為1個(gè)正整數(shù)M,表示不相同的隨機(jī)數(shù)的個(gè)數(shù)。第2行為M個(gè)用空格隔開的正整數(shù),為從小到大排好序的不相同的隨機(jī)數(shù),末尾有一個(gè)空格。

樣例輸入

10

20 40 32 67 40 20 89 300 400 15

樣例輸出

8

15 20 32 40 67 89 300 400

代碼

#includeint main()

{

int n,i,j,t;

scanf("%d",&n);

int a[n],b[n];

for(i=0;i

【案例三】

在這個(gè)案例中,本來是在輸入的第一行給出相應(yīng)數(shù)字的數(shù)量,但是我認(rèn)為應(yīng)該有一種簡(jiǎn)單的方法去實(shí)現(xiàn)對(duì)未知數(shù)量的數(shù)字進(jìn)行排序,于是從網(wǎng)上找到了這個(gè)函數(shù)進(jìn)行操作,效果可見一斑。

題目描述

本題要求將給定的n個(gè)整數(shù)從大到小排序后輸出。

輸入

輸入第一行給出給出n個(gè)整數(shù),其間以回車之外的任意符號(hào)分隔。

輸出

在一行中輸出從大到小有序的數(shù)列,相鄰數(shù)字間有一個(gè)空格,行末不得有多余空格。

樣例輸入

5 1 7 6

樣例輸出

7 6 5 1

代碼

#include#includeint main()

{

int t,j,i=0,n=0,a[1000],b[1000];

char c;

while((c=getchar())!='\n')

{

if(isdigit(c))

{

ungetc(c,stdin);

scanf("%d",&a[n++]);

}

}

for(i=0;i

總結(jié)

以上是生活随笔為你收集整理的生活中c语言排序案例,C语言之数字排序-基于冒泡排序法的一些案例(对未知数量的数字进行排序)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。