2017-03-27 1 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

당신은 출력으로 무엇을 기대 않았다

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" } 
? 제가 5라는 숫자를 주면, 저는'1 2 3 4 5'를 얻습니다. – Marievi

+2

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

+0

함수의 마지막에'return 0; '이 있습니다. 왜 다른 것을 돌려 주겠습니까? – StoryTeller

답변

2

return 0;을 입력했기 때문에이 함수는 0을 반환합니다.

대신,이 작업을 수행 :

는 는
+0

맞습니다! 루프 전에 ** i **를 선언하는 아이디어를 완전히 놓쳤습니다. 그러나 5 개의 입력 또는 최종 번호 만 반환합니다. '1 2 3 4 5' 함수로 전체 실행을 표시하려면 어떻게해야합니까 ?? –

+0

@EddardPeartree 함수 안에 숫자 (0-4)를 출력하여 이미 그 값을 나타냅니다. – Lundin

+0

그래도 메인의 다른 지점에서이 함수를 호출하면 그 방법으로 작동할까요? –

관련 문제