2017-03-27 20 views
0

私はC言語の構文でうまくやっていません。具体的な内容に切り詰めて、何が問題になっているのか説明してください。メイン以外の関数がForループから適切な値を返さない

mainでユーザ入力整数を取得し、整数をforループを使用してその数までカウントする関数に整数を送信します。

問題:mainで正しい戻り値を取得できません。ループは正常に機能しますが、ループの機能は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

でも、メインの他のポイントでこの関数を呼び出すと、それはうまくいくでしょうか? –

関連する問題