輸入數到一維陣列中,用氣泡排序法將其按從大到小的次序排

2021-03-22 00:00:21 字數 6049 閱讀 1157

1樓:匿名使用者

#include

using namespace std;int a[10];void input()

}void sortarray() }

}}void output()

cout << endl;

}int main()

輸入10個數,用氣泡排序法按由小到大順序排序並輸出??c語言的

2樓:萬能導師

如下參考:

#包括< stdio, h >

intmain()

{inta[10]={0};

inti=0,j=0,t=0;

for (i = 0;我

< 10;我+ +)

for (i = 0;我< 10;我+ +){for (j = 0;j < 10 - i;j + +) {if (a > [j] a [j + 1)){t=a,[j]。

a[j]=a,a+1加到[j]。

a[m+1]=t;

}}}for (i = 0;我< 10;我+ +){printf("%d",a[i]);}

返回0;}

任意輸入10個資料,程式執行:

擴充套件資料:氣泡排序演算法的複雜原理如下:

1.比較相鄰metaelements。如果第一個比第二個大,就交換它們。

2.對每一對相鄰的元素執行相同的操作,從第一對開始,到最後一對結束。此時,最後一個元素應該是最大的數。

3.對除最後一個元素之外的所有元素重複上述步驟。

4.每次對越來越少的元素重複上述步驟,直到沒有一對數字可供比較。

3樓:路堯家的顧小言

氣泡排序的程式**

如下:#include

int main()

;int i=0,j=0,t=0;

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

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

}}for(i=0;i<10;i++)

return 0;}

任意輸入十個資料,程式執行結果:

4樓:匿名使用者

#include

void main()

;int i=0,j=0,c=0;

printf("請輸入10個數

:\n");

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

for(i=0;i<9;i++)}}

printf("該十個數從小到大排序為:\n");

for(i=0;i<10;i++)}

5樓:匿名使用者

1 輸入;

2 排序;

3 輸出。

參考**如下:

#include

int main()

}for(i = 0; i < 10; i ++)//輸出。

printf("%d,",&a[i]);

printf("\n");

return 0;}

6樓:匿名使用者

#include

#define n 10

void main()

if(!flag) break;

}printf("\n排序後陣列為:\n");

for(int j=0;j

printf("s[%d]=%d\n",j,s[j]);}

7樓:匿名使用者

#include

#include

/*對輸入的10個數,用冒泡排

序法按由小到大順序排序*/

void sort(int array[10])}}}void main()

8樓:匿名使用者

#include

#define maxn 10

int main()

for (i = 0; i < maxn; i++)printf(i == maxn - 1 ? "%d\n" : "%d ", arr[i]);

return 0;}

急:c語言中用冒泡發對10個一維陣列按從小到大順序排序,並輸出。

9樓:匿名使用者

氣泡排序法,準確的形式應該是這樣的:

for(i=0;i<9;i++)

for(j=0;j<10-i-1;j++)if(a[j]>a[j+1])

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

printf("%4d",a[i]);

printf("\n");

10樓:匿名使用者

其實,是你的兩個迴圈錯了,for(i=0;i<9;i++) for(j=0;j<10-i;j++) 這兩個迴圈應該這樣寫for(i=1;i,開始i=1,j<9,則迴圈是從j=0到j=8 ,這樣迴圈9次,也就是第一個數和後面9個數做比較,以下依次比較到最後,輸出結果。

11樓:匿名使用者

j不可能為9;這樣你的兩個問題都解決了!

#include

main()

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)    //j<10-1-i   這裡錯了

if(a[j]>a[j+1])

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

printf("%4d",a[i]);

printf("\n");}

12樓:匿名使用者

同學,首先解決問題1:

你的第一個問題分析的正確,a[10]的確越界了,這裡越是你需要再處理一次的地方,每次其實j不應該到10-i而是10-i-1;為什麼能夠執行呢?

vs是下不行的。vc 6下沒有檢查資料邊界,所以可以正常執行。我這邊除錯的時候顯示a[10]也就是你說的越界的那個元素的值預設為:

1638280 所以呢,肯定不會因為if(a[j]>a[j+1])影響你的排序。

所以貌似可以正常執行。(你要是會除錯肯定沒有這個問題了)

問題2就是你理解的問題了,氣泡排序就是每次把最大的一個放到最後,那麼下一輪就不需要該輪拍到最後的元素,例如 4 3 2 1變成 3 2 1 4 那麼排的時候就不用考慮4了。到最後一輪時,本身只要排j=0的那麼多拍了j=1 也是沒有影響的,後面的都比之前的大,自然不要比較了啊!!!

說的也不是很清楚,希望可以解決你心頭的疑惑。 求採納哦!! (*^__^*) 嘻嘻……

輸入一個陣列,按從大到小的順序排序(提示:可使用選擇排序,氣泡排序或插入排序的任何一種)

13樓:匿名使用者

選擇排序:選擇法排序是一種簡單的容易實現的對資料排序的演算法。

以整形陣列元素為例,有陣列a[10](以c語言為例描述),即a[0],a[1],…,a[8],a[9](假設其元素均互不相同)。要求對其元素排序使之遞增有序。

首先以一個元素為基準,從一個方向開始掃描,比如從左至右掃描,以a[0]為基準。

接下來從a[0],…,a[9]中找出最小的元素,將其與a[0]交換。

然後將基準位置右移一位,重複上面的動作,比如,以a[1]為基準,找出a[1]~a[9]中最小的,將其與a[1]交換。

一直進行到基準位置移到陣列最後一個元素時排序結束(此時基準左邊所有元素均遞增有序,而基準為最後一個元素,故完成排序)。

以下為一個用c描述的函式實現上述排序:

void sort(int array,int n)

}printf("排序結果:");

for( i = 0; i < 10; i ++ ) //依次輸出排序結果

printf("%d\t",a[ i ]);

printf("\n");

}pascal為例子

procedure bubble_sort(var l:list);

vari,j:position;

begin

for i:=first(l) to last(l)-1 do

for j:=first(l) to last(l)-i do

if l[j]>l[j+1] then 4 swap(l[j],l[j+1]);

//交換l[j]和l[j+1]

end;

下面使用c++語言編寫

#include

void main()

cout<

}c語言中的排序方法選擇方法是首先從要選擇的數中選擇最大(或最小)的數,將它放在第一個位置,然後從剩下的數中選擇最大(或最小)的數放在第二個位置,直到最後從剩下的兩個數中選擇最大(或最小)的數放在倒數第二個位置,剩下的一個數放在最後位置,完成排序。

14樓:無眠之神

用什麼語言好歹說一下吧!

c語言 氣泡排序問題 將輸入的10個數按由大到小的次序排序並輸出

15樓:暮影

a[i]

a[j]a[j+1]=temp

a[i]

c++程式題 輸入10個數到一維陣列中,按升序排序後輸出。分別用3個函式 實現資料的輸入,排序和輸出。 20

16樓:微俊

#include

using namespace std;

void bubblesort(int *pdata,int count)

void show(int *pdata){for(int i=0;i<10;++i)cout<純手

打望採納

1. 從鍵盤輸入10個整數,採用氣泡排序法從大到小排序並輸出。

17樓:匿名使用者

#include

#include

void print(int *a,int n);

void paixu(int *a,int n);

void main()

int swap(int *a,int *b)//交換//氣泡排序,從大到小

void paixu(int *a,int n)}void print(int *a,int n)//程式在vc++6.0裡編譯執行通過,不懂的可追問哦。

18樓:匿名使用者

(int i = 0; i < newarr.length; i++)//氣泡排序 { for (int j = i + 1; j < newarr.length; j++) { if (newarr[i] < newarr[j],ivvhny

19樓:匿名使用者

main() }

for(i=1;i<11;i++)

printf("%5d,",a[i] );

printf("\n");}

為什麼我做的這個氣泡排序(輸入10個數字,按由大到小的順序排列)有問題呢

20樓:匿名使用者

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

{if(a[j]

給陣列任意輸入10個數然後按氣泡排序逆序輸出該十個數

21樓:寂寞而莫我知也

#include

int main(void)

for(n=0;n<10;n++)

printf("%d\t",a[n]);

}樓主,我這個簡單,好理解的

22樓:蓬萊

給你一個我的程式,後四行以前用的是冒泡法排序,後四行是逆序輸出。另外,給你補充個知識,其實冒泡法和沉降法的本質是一樣的,都是把小的數字排在前面。只不過冒泡法是小數往上升,沉降法是大數往下降。

我用的是沉降法哦。

#include

int main()

for(i=0;i<10;i++)}}

for(i=9;i>=0;i--)

printf(" %d",a[i]);

printf("\n");}

程式設計題 用氣泡排序法將一維陣列A 1010進行排列

c語言?include stdio.h void bubble sort int array,int n if 1 flag break void main i bubble sort a,10 for i 0 i 10 i printf d a i printf n 此程式為從小到大排列 incl...

用C語言,隨機輸入整數,用氣泡排序法對這些整數進行從小到大排序,輸出排序前和排序後的數的順序

c語言隨機輸入10個整數的源 如 下 include stdio.h void fun int a void main int c 10 int i printf 請輸入待排序的10個數 for i 0 i 10 i fun a printf n排序後的數列如下 n for i 0 i 10 i w...

C語言中,用冒泡法對整數進行從小到大排序,而且排序過程也

include int main for int i 0 i 10 i printf n for int i 0 i 10 i return 0 用c語言,隨機輸入10個整數,用氣泡排序法對這些整數進行從小到大排序,輸出排序前和排序後的數的順序。c語言隨機輸入10個整數的源 如 下 include ...