1樓:捌零老陳
for(i=0;i<9;i++)}
2樓:匿名使用者
#include
int main()
{int i,j,t,a[10]; // 幫你去掉了變數k,minprintf("請輸入10個數:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<=9;i++)
{// 幫你去掉了k=i賦值操作
for(j=i+1;j<=9;j++)
{// 幫你去掉了min=a[k]操作
if(a[j]
你的有點凌亂,幫你改了一下,建議到編譯器上去寫,不要到手機上寫。手機上畢竟不方便!
程式設計:選擇排序法。幫我看看這兩個程式哪不一樣,為什麼1執行結果不對,2執行結果對
3樓:匿名使用者
比較一下倆程式,
第乙個是判斷
if (a[i]
這個因為k始終等於i,根本不可能成立,這能對就奇怪了呀。 第二個是判斷 if (a[j]
這才是正確的判斷呀。 大家幫忙看看為什麼會有這樣的結果?我覺得沒有出問題啊(直接選擇排序法) 4樓:匿名使用者 這個是選擇排序吧;陣列下標從0開始 for (i = 0; i < array.length-1; ++i){ index=i for(j=i+1;j c語言選擇排序法遇到了問題,求幫我分析一下我的錯誤**的執行過程
30 5樓:匿名使用者 排序的主要的地方,都不對的 。。。。。。。。。。。。。 for(i=0; i<7; i++)}} c語言選擇排序,這樣為什麼不行呢? 選擇排序法:為什麼程式執行之後輸出結果不對? 6樓:匿名使用者 for(i=0;i<9;i++)}} 這樣就對了……而且這是氣泡排序,不是選擇排序! 7樓:匿名使用者 }選擇排序,應該是每次比較找到乙個 最小(或最大)的數,放在最後。 你這裡 k=j,在if (a[k]
你寫的雖然有點繁瑣,但是很像 氣泡排序(加上花括號!)。 選擇排序寫法一般是這樣的: int temp; for(int i=0; i<9; i++)for(int j=i+1; j<10; j++)} //選擇排序結束! c語言 選擇排序 到底**出錯了呢 8樓:竹葉蘭之夏 首先在你的第乙個for迴圈之後, 增加乙個句: i = 0; 其次, 你的排序的部分邏輯應該是有些問題的. k = 0; while (i < 5) tmp = a[i]; a[i] = a[j]; a[j] = tmp; i++; }上面是剛我自己寫的, 不知道有沒bug, 你試一下吧. 9樓:匿名使用者 你的while迴圈裡,if判斷的語句只能作用乙個語句,所以每次都進行了交換,而不是符合條件才進行交換 c語言用選擇法排序,為何無法實現功能,求大神指出我**的問題,我編譯不存在語法錯誤。 10樓:銷 交換的最後一句寫錯了,是a[i]=temp; 判斷是否相等其實沒必要,多數情況下加了這個判斷反而會變得更慢 捌零老陳 for i 0 i 9 i include int main int i,j,t,a 10 幫你去掉了變數k,minprintf 請輸入10個數 n for i 0 i 10 i scanf d a i for i 0 i 9 i 幫你去掉了k i賦值操作 for j i 1 j 9 j ... 給你個我以前寫的降序的程式,你稍微改下就行了,我懶得改了,include define n 10 main printf 這 d個數從大到小排列為 n n 列印出這十個經排列後的數 for i 0 i printf d a i printf n include include main printf... 首先以array 0 作為參照,從左到右掃描,找到最小的資料與array 0 位置交換。接下來以array 1 作為參照,重複上述過程。k i定位參照 k j找到剩下陣列中最小值 k i是為了每次迴圈都從當前項開始呀。k j 不是你說的j k 是為了記錄後面的最小項,以方便替換。 從第i個數開始,比...c語言選擇排序法我排的執行結果不對求助高
C語言,選擇法排序,對陣列A進行公升序排列,求答案,謝大神
c語言用選擇法對陣列中整數按由小到大排序