c語言中的陣列選擇排序,為什麼執行時候的錯誤很詭異

時間 2022-03-08 15:00:37

1樓:

是for(i=0;imin=a[0];

for(j=i+1;jif(min>a[j]){min=a[j];

t=a[j];

a[j]=a[i];

a[i]=t;

這一段寫得太詭異了!請改成:

for(i=0;it=i;

for(j=i+1;jif(a[t]>a[j]){t=j;

if(t!=i){//不加這個判斷和冒泡就基本無異j=a[i];

a[i]=a[t];

a[t]=j;

然後——

把min變數刪除。

if(i)  printf("");刪除——打一個""就是什麼都不打,這有啥意義?

把printf("%d",a[i]);改成printf("%d ",a[i]);——%d加一個空格。

在return 0;前加一句printf("\n");。

2樓:時辰八點半

明顯你這冒泡寫錯了,首先你的min毫無作用不說,在i迴圈語句裡面居然會有定值賦給min=s[0]這東西的嗎。。。都從小到大排列了拍了最小那最小就別動啊,每次還取s[0]幹嘛呢啊,最小弄完就下一位了,而且你的交換也毫無邏輯,執行的是每次都無條件地把當前的s[i]和s[9]進行交換,這是在幹哈呢

c語言選擇排序法遇到了問題,求幫我分析一下我的錯誤**的執行過程 30

3樓:匿名使用者

排序的主要的地方,都不對的 。。。。。。。。。。。。。

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

c語言,選擇法進行降序排序。我寫的選擇排序程式如下,但執行之後還是原來陣列的順序 請大神指教

4樓:匿名使用者

有兩處錯誤:1:s[i]-->s[max] 2:

第二段**,應該是在第二重迴圈執行完之後。 

不理解可以追問

5樓:匿名使用者

void sort(int length,int *data)if(max!=i)

}for(i=0;i

這段**拿到k迴圈外才對

c語言,選擇排序法,,我排的執行結果不對,求助高手,,謝謝

6樓:小號很好使

中間的兩層for迴圈改成這樣:

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

.... for(j=i+1;j<=9;j++).....else ;

.....}

其餘部分不用動。

你寫的這個為什麼非得定義一個最小值呢?實際上,我上面這一段a[i]中就是時刻都是最小值,沒有必要.。你增加了中間變數之後,徒徒增加了你自己的腦袋負擔,搞得邏輯複雜,更容易讓自己出錯,你說是不是。

7樓:捌零老陳

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

c語言陣列在使用中常見的幾種錯誤

8樓:司馬刀劍

在計算機程式中,通常可能發生以下三種型別的錯誤:

(1)語法錯誤:這是指程式中含有不符合語法規定的語句,例如關鍵字或符號書寫錯誤(將printf寫成print、將陣列元素引用寫成a(2)等)、使用了未定義的變數、括號不配對等。含有語法錯誤的程式是不能通過編譯的,因此程式將不能執行。

(2)邏輯錯誤:這是指程式中沒有語法錯誤,可以通過編譯、連線生成可執行程式,但程式執行的結果與預期不相符的錯誤。例如整型變數的取值超出了有效的取值範圍、在scanf函式遺漏了取地址運算子&、陣列元素引用中下標越界、在應當使用複合語句時沒有使用複合語句等。

由於含有邏輯錯誤的程式仍然可以執行,因此這是一種較難發現、較難除錯的程式錯誤,在程式設計、除錯中應予特別注意。

(3)系統錯誤:這是指程式沒有語法錯誤和邏輯錯誤,但程式的正常執行依賴於某些外部條件的存在,如果這些外部條件缺失,則程式將不能執行。例如折半查詢法是在已經排序的陣列上進行的,但實際的資料並沒有進行排序、程式中需要開啟一個已經存在的檔案,但這個檔案由於其他原因丟失等。

c語言選擇排序的問題

9樓:匿名使用者

這是選擇排序。先用a[0]與a[1]比較,當a[0]

t=array[k];array[k]=array[i];array[i]=t;不是for(j=i+1;j

C語言二維陣列的排序問題,c語言二維陣列

不是。這麼說吧,陣列名本身就是指標,指向陣列的第一個元素。至於你所說的呼叫呼叫二級 二維吧 陣列,難道不是如普通變數般直接呼叫嗎?根據問題補充說,這是不允許的,main 函式的形參是固定的不能傳遞指標。而一般的自定義函式只能用傳遞首地址的形式來傳遞二維陣列,例子如下 定義 int a x y int...

c語言中氣泡排序的實現原理是什麼

段幹素枝青未 氣泡排序,就是對一組數進行逐趟排序的方法,具體分為升序和降序。以升序為例。每一趟的任務,就是從一組數的第一個數開始,依次比較相鄰的兩個數的大小。既然是升序,那麼比較後,如果前者大於後者,那麼兩者交換位置。就這樣依次地比下去。這樣的話,第一趟就把最大的數排到了最後。而每再比較一趟的時候,...

c語言中定義字元陣列,其中存放的是什麼

在c c 中,陣列是指 連續分佈的記憶體單元。字串是一種字元陣列,比其他陣列特殊的地方是如果陣列被賦值 scanf,fread,fprintf,strcpy,nstrcpy 會在陣列末尾追加 0 在c語言中,陣列大小是不可知的。strlen s 只能算出從s開始到 0 的長度 總體來說,陣列未初始化...