大一C語言問題,找到解法,用冒泡法從大到小輸出乙個陣列

發布 科技 2024-08-04
9個回答
  1. 匿名使用者2024-02-15

    你首先必須了解這個演算法,這是最簡單的。

    #define size 8

    void bubble_sort(int a,int n)int i, j, temp;

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

    temp = a[i];

    a[i] = a[i + 1];

    a[i + 1] = temp;

    int main()

    int number[size] = ;

    int i;

    bubble_sort(number, size);

    for (i = 0; i < size; i++)printf("%d", number[i]);

    printf("");

  2. 匿名使用者2024-02-14

    因為陣列的下標從0開始,所以兩個for語句中的9應該改成8,然後用冒泡法反轉順序的大小,順序應該從最後乙個開始,所以嵌入的for應該改為<9-d,希望能幫到你。

    --語言支援小組隨時為您服務。

  3. 匿名使用者2024-02-13

    排序步驟不正確,即 for(b 0) 段。

  4. 匿名使用者2024-02-12

    陣列 0 到 8 已經是 9 個數字。

  5. 匿名使用者2024-02-11

    陣列是按順序儲存在記憶體中的,雖然 a[10] 是越界的,但 a[10] 是有值的,你的程式公升序排序可以正確執行,你把“if”改成<,降序排序,程式會出錯,這是因為你是 a[10] 只是乙個大數,a[9]>a[10] 不是真的,a[10] 是沒有意義的。

    要使程式按公升序或降序正確執行,請將其更改為 for(i=0; i<9;i++)

    for(j=i;j<10-i-1;j++) 線上。

  6. 匿名使用者2024-02-10

    氣泡排序方法的確切形式應如下所示:

    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("");

  7. 匿名使用者2024-02-09

    實際上,你的兩個迴圈是錯誤的,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個數字,然後依次比較到最後,輸出結果。

  8. 匿名使用者2024-02-08

    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("");}

  9. 匿名使用者2024-02-07

    同學們,先解決問題1:

    你的第乙個問題是正確的,a[10] 確實越界,越需要再次處理,每次 j 不應該是 10-i 而是 10-i-1; 它為什麼有效?

    VS 行不通。 vc 6 下沒有資料邊界檢查,因此工作正常。 當我在這裡除錯時,它顯示了乙個[10],也就是說,你說的元素的值預設是越界的:

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

    所以看起來它工作正常。 (如果您知道如何除錯,則不會遇到此問題。

    問題 2 是你理解的問題,氣泡排序就是每次都把最大的乙個放在最後,那麼下一輪就不需要輪的最後乙個元素了,比如 4 3 2 1 變成 3 2 1 4 那麼你編排的時候就不需要考慮 4。 最後一輪,只要有那麼多j=0 j=1的枝條就沒關係了,後面的比前面的要大,自然就不要比較了!!

    不是很清楚,希望能解決你心中的疑惑。 請領養!! 嘻嘻......

相關回答
10個回答2024-08-04

下面是乙個 C 實現,它將陣列 a[10] 分配給 p[n]: >>>More

5個回答2024-08-04

好的,這是**:

#include >>>More

12個回答2024-08-04

一維陣列具有相同的值,但在矩陣的情況下,行列式。 >>>More

6個回答2024-08-04

總結。 您可以將兩個陣列的元素放入乙個陣列中,然後使用 sort() 函式。 >>>More

10個回答2024-08-04

1.先寫好筆記的內容,如下圖所示。

2.然後寫資料型別(char)+字串名,如下圖所示。 >>>More