2017-03-27 68 views
0

由於某些不可理解的原因,我對C中的語法做得不好。讓我切入具體細節並解釋我遇到的問題。主函數不能返回For循環的適當值

在main中獲取用戶輸入整數,將整數發送到一個函數,在該函數中使用'for循環'來計算該數字。

問題:我無法獲得正確的返回值。循環工作正常,但循環的函數返回0.我卡在這裏。爲了正確的語法進行了一些調整,但我無法確切地知道它應該如何。

int forLoop(int input); //function// 

int main(){ 
    int input; 
    printf("Enter an integer \n"); 
    scanf_s("%d", &input); 
    printf("Results %d ex: 1 2 3...8 ", forLoop(input)); 

    return 0; 
}//end here// 

int forLoop(int input){ //function// 

    for (int i= 0 ; i < input;) { 
     printf("%d \n", i = i + 1);  

    } 
    return 0; 
} 
+0

那你期望的輸出?如果我給號碼'5',我會得到'1 2 3 4 5'。 – Marievi

+2

'return 0;'---->'return i;'.....? – LPs

+0

你在函數的最後有一個'return 0;',爲什麼你會期望它返回其他東西!? – StoryTeller

回答

2

該函數返回零,因爲您在其中鍵入了return 0;

相反,這樣做:

int forLoop (int input){ 
    int i; 
    for (i= 0; i < input; i++) { 
     printf("%d \n", i);  

    } 
    return i; // will be the same value as "input" 
} 
+0

這是正確的!完全錯過了在循環之前宣佈** i **的想法。但是,它僅返回5位輸入或最終號碼。我怎樣才能讓它顯示函數'1 2 3 4 5'的完整執行? –

+0

@EddardPeartree在函數內部打印數字(0-4),這就是它已經做的事。 – Lundin

+0

好的,但是如果我在main的任何其他點調用該函數,它會以這種方式工作嗎? –