2014-10-09 76 views
-2

當我運行下面的代碼時,最初它運行得很順利,但是在第十一次以後它開始把垃圾值和輸出結果作爲-656,+ NAL,0.0000,-123000.000等等?爲什麼C程序不能運行多次?

void main() 

    { 

     float x; 
     scanf("%f",&x); 
     printf("%f",x); 
     getch(); 
    } 
+4

確實在問題的代碼是實際的代碼,你跑?更重要的是,問題中的代碼是* complete *和* actual *代碼?你沒有任何包含頭文件的指令? – 2014-10-09 11:23:24

+0

我想,它就像你在代碼的某個位置打印'getch()'的值,如果這不是你的代碼應該平滑運行沒有任何錯誤,直到變量'x'保存它可以存儲在碼。 – Asis 2014-10-09 11:41:31

+0

請包含完整的代碼。這是毫無意義的猜測,除非你在這裏發佈實際的代碼。 – futureelite7 2014-10-09 13:22:27

回答

0

我只是猜在這裏,但如果問題的代碼是完整的和實際的代碼,那麼你有undefined behavior因爲無論是scanf不是printf功能已申報,這意味着,編譯器將猜想他們採取什麼樣的論點,在你的情況下,編譯器很可能猜錯了。

要解決這個問題,你需要包括其中那些函數聲明的頭文件,所以編譯器知道他們:

相關問題