當前位置:編程學習大全網 - 編程軟體 - C語言的數組排序問題。

C語言的數組排序問題。

簡單的末位比較排序,從最後壹個數a[i-1]開始和x比較,大於x的向後移壹位,比如a[i-1] > x,就將a[i-1]的數值寫給a[i],所以第壹個空應該添i-1。最後比較到a[4]的時候while循環跳出,這個時候的數據x要回填到a[5]的位置,所以第二個空應該添i++或i+1。

所以說答案是:

第壹個填 i-1

第二個填 i++或i+1

最後順便說句,樓主,for循環裏面條件有問題,n+1變量是錯誤,妳要麽在前面定義int n = strlen(a),要麽在這個地方修改為8+1。

修改後並經過測試的代碼如下:

#include<stdio.h>

void main()

{

int i,x,a[20]={2,4,5,7,8,12,13,18};

printf("Input an integer to be inserted x:");

scanf("%d",&x);// 設輸入: x=9;

i=8;

while(x<a[i-1]&&i>0)

{ a[i]=a[i-1]; i--; }

a[i++]=x;

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

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

}

//結果為:2,4,5,7,8,9,12,13,18

  • 上一篇:無人機圖像傳輸用WiFi好還是fpv圖傳?這兩種有什麽區別它們的優缺點是
  • 下一篇:兒童電腦編程
  • copyright 2024編程學習大全網