C語言氣泡排列問題

發布 科技 2024-05-15
3個回答
  1. 匿名使用者2024-02-10

    冒泡是從數字序列中選擇最小的數字,然後與第乙個數字交換,你在這個程式中犯了太多錯誤。

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

    for(k=1;k<=i-j;k++)

    if(num[i]>num[i+1])

    t=num[i];

    num[i]=num[i+1];

    num[i+1]=t;

    用j和k作為迴圈因子有什麼用,但其中的變化與j和k無關? 還有你的ii,這會導致閱讀混亂,以及太多的變數參考。

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

    #include

    int main(void)

    int num[100],i=0,n,j,k,t,ii;

    char key;

    printf("請輸入n位數字,負數表示輸入完成");

    do ++i;

    printf("%d. -",i);

    scanf("%d",&n);

    fflush(stdin);

    num[i]=n;

    while(num[i]>0);

    i--;//

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

    for(k=1;k<=i-j;k++)

    if(num[k]>num[k+1]) //t=num[k];

    num[k]=num[k+1];

    num[k+1]=t;

    for(ii=i,i=2;i<=ii;i++)printf("%d ",num[i]);在程式方面。

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

    if(num[i]>num[i+1])

    t=num[i];

    num[i]=num[i+1];

    num[i+1]=t;

    其中 i 應替換為 k,即如下所示:

    if(num[k]>num[k+1])

    t=num[k];

    num[k]=num[k+1];

    num[k+1]=t;

    此外,建議將程式的最後一部分改為以下形式:

    for(ii=i,i=2;i<=ii;i++)printf("%d ",num[i]);

相關回答
8個回答2024-05-15

首先,因為這個陣列只有 10 個資料,下標從 0 開始,到 i=9 結束。 >>>More

8個回答2024-05-15

冒泡時分類。

for j = 0 to n - 2 >>>More

6個回答2024-05-15

這是經典的全排列演算法。 m 和 k 表示要完全排列的元素範圍,即兩個端點的索引,m 是起始索引,k 是結束端點索引。 >>>More

9個回答2024-05-15

範圍。 你靜態字元 *chh;

static char *ch1;雖然兩個指標指向的位址沒有變化,但你有沒有想過它們指向的記憶體位址是否已經釋放,char chc[10]; 它是本地的,函式已經結束,生命週期已經結束,你正在嘗試使用 void times() 中的指標訪問它。 >>>More

14個回答2024-05-15

該程式在 0:00 到 23:59 之間的任何時間計算兩根針之間的角度。 >>>More