2015-10-25 52 views
-2

這是最簡單的插入排序程序。 不幸的是,它不提供一個結果: 它確實提示用戶的數組大小 和數字列表,但它不會做 排序。我會感謝您的幫助!插入排序程序,無輸出

/** Insertion sort **/ 
#include <stdio.h> 

int main (void) 
{ 
    int size, array[80], i, j, element; 

    printf("Enter number of elements: \n"); 
    scanf ("%d", &size); 

    printf("Enter %d integers\n", size); 

    for (i = 0; i < size; i++) 
    { 
     scanf("%d", &array[i]); 
    } 

    for (i = 0; i < size; i++) 
    { 
     element = array[i]; 
     j = i; 

     while (j > 0 && array[j-1] > element) 
     { 
      array[j] = array[j-1]; 
      array[j-1] = element; 
      j--; 
     } 
    } 

    printf ("Sorted list in ascending order:\n"); 

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

    return 0; 
} 
+2

使用輸入'5 1 2 3 4 5','5 5 4 3 2 1'和'5 8 4 1 5 1'進行測試,並且對於所有這些程序,[Wandbox](http:///melpon.org/wandbox/permlink/BUS7cUAS8hhokRtw)。你能提供你的意見嗎? – MikeCAT

+0

'printf(「%d」,array [i]);'在每個數字後面打印一個空格 – aerokite

+0

該程序工作(MSVC),添加一個空間,如上所述。 –

回答

0

這是那些混亂的時刻之一:) 我已經忘記了,沒有在第二個printf,之後用戶是 提示列表中的「\ n」字符 。因此,我一直在一行中輸入數字 ,而沒有按ENTER;當然, 該程序認爲,作爲一個數字,只有一個整數 不是列表)))謝謝大家的回覆。 對不起。