2015-10-22 49 views
1

此C代碼應該創建一些隨機數並打印它們,然後對它們進行排序並再次打印它們,但它只是打印排序的數字。任何機構能幫助我嗎?printf不起作用

#include <stdio.h> 
    #include <time.h> 
    #include <stdlib.h> 
    int main(){ 
     int i, j, k; 
     float temper; 
     time_t t; 
     float grades[1000]; 
     fflush(stdout); 
     printf("Here are the number\n"); 
     srand(time(&t)); 
     for(i=0;i<1000;i++){ 
      grades[i]=rand(); 
      printf("%f\n", grades[i]); 
     } 
     for(i=0;i<1000;i++){ 
      int swap=0; 
      for(j=i;j<1000;j++){ 
       if(grades[i]>grades[j]){ 
        temper=grades[i]; 
        grades[i]=grades[j]; 
        grades[j]=temper; 
        swap=1; 
       } 
      } 
     } 
     printf("sorting is done"); 
     for(i=0;i<1000;i++){ 
      printf("%f\n", grades[i]); 
     } } 
+0

按預期爲我工作。它隨機生成打印數字,然後打印排序列表。你可以發佈一個樣本運行,最好用少量的數字,比如說10個左右? – dbush

+0

它也在這裏工作!!!! –

+1

這個問題的標題是誤導性的。也許它應該被編輯爲「意外缺少printf輸出」? –

回答

4

您的程序工作正常。嘗試將所有內容從1000改爲10,以便自己進行測試和查看。

正在發生的事情是,它將所有內容快速打印出來,以至於第一個1000頁面不在頁面上。

+0

我做到了,它的工作原理。謝謝。 – Saeed

1

該代碼是正確的。

  1. 嘗試使用小尺寸陣列,
  2. 寫所有的日誌文件。
1

代碼也適用於我。也許你的終端沒有存儲足夠的線路讓你看到輸出的開始。您可以在終端的設置中更改該設置。或者您可以將它們捕獲到文件中。如果你是谷歌的話,有一個簡單的選擇。另外,在另一個printf之間添加一個標記,這個標記很明顯,例如:

printf("+++++++++++++++++++++++++++ here is the break point ++++++++++++++++"); 

這會讓它更難以錯過。祝你好運! PS:在運行程序時,將輸出文件輸入到文件中,只需鍵入'>文件名'即可。我打電話給我的math.c,所以當我跑我輸入: ' $。/數學>文件' 和整個輸出在一個文件名爲'文件'

+0

我打電話給我的程序math.c,編譯爲$ gcc math.c -o math,然後運行,然後cat到一個文件,我做了$。/ math> file – JParks