2016-10-10 91 views
-6

我有這個程序,我寫的,它完全符合,但我不認爲它正確地輸出。我在這裏犯了錯嗎?
這是我的計劃:哪裏我犯了一個錯誤在我的計劃,我認爲它是一個邏輯上的錯誤,但我不能很找到它

#include <stdio.h> 

void main(void) 
{ 
    int loop_counter = -8; 
    int user_input = 9; 
    char c1 = '9'; 
    char c2 = 43; 

    while(loop_counter != 21); 
    { 
     printf("%d\n", loop_counter); 
     printf("%d\n", loop_counter+1); 
     printf("%d\n", loop_counter+2); 

     loop_counter = loop_counter + 1; 
     loop_counter++; 

     printf("%d\n", loop_counter); 
     printf("%d\n", loop_counter+1); 
     printf("%d\n", loop_counter+2); 

     getchar(); 
    } 

    printf("loop exit\n\n");  
    getchar(); 
} 
+3

你得到了什麼輸出,你期望輸出什麼? – aschepler

+3

它應該做什麼? – ventsyv

+1

如果我們不知道預期的輸出結果,那麼有人會告訴你它是否輸出了應有的結果? –

回答

0

最大的錯誤是

​​

其中尾隨;會使循環無限。

+0

正確的,但環路仍然不退出 – Siya

+1

這是因爲循環計數器總是偶數,如如上所述,您在每個循環中增加兩次。你已經糾正過了嗎? –

+0

我糾正了while(loop_counter!= 21);通過刪除分號去除增量,循環將退出? – Siya

1

最大的問題可能是,你有沒有闡明你希望什麼樣的代碼將做什麼或你想要的代碼做,或者你覺得它做什麼。我假設你只需要一些幫助,所以我的嘗試如下。

通過編譯運行這個和解釋錯誤信息有助於一點點。 馬上,編譯器不喜歡你的調用main。編譯器提供了一個建議,將成功地解決這個錯誤,所以就照做(不要忘記加上 返回0;在你面前 聲明退出主 第二次警告編譯器生成的是,你在分號。你的while語句的結尾,它也告訴你如何修復它,按照說明書,你應該能夠生成一個可執行文件

然而,你仍然會在運行時遇到問題。你的意圖。 利用上述校正的錯誤,你的loop_counter可變進入初始化爲-8 while循環,第19行增加1,並通過1上線20的呼叫再次增加被製成的getchar(),但沒有輸入中給出。第7,8,9行也不會被你的程序使用。

希望這給你一些方向。 :)

+1

請注意,'main'是一個例外,因爲它不需要返回任何'int'值。 –

相關問題