2012-11-13 6 views
1

두 개의 숫자를 취하고 값에 따라 반환 값이 둘다 홀수이고, 둘 다 짝수이거나 A가 홀수이고 B가 짝수 인 프로그램을 작성하려고합니다.여러 개의 숫자로 C에서 홀수/짝수를 반환합니다.

하나의 변수를 검사하는 프로그램을 만들었지 만 두 번째 변수를 추가하면 예상치 못한 출력이 나오고 코드를 정렬 할 수없는 것처럼 보입니다. 올바른 출력. 나는 그것이 if/else 문장의 배열에 문제가 있다고 생각합니다. 32767되지 5 :

#include <stdio.h> 

int main() 
{ 
    int numA, numB; 
    printf("Please enter variables:"); 
    scanf("%d, %d", &numA, &numB); 
    if (numA % 2) { 
     printf("Variable A:%d is odd \n",numA); 
    } 
else{ 
    printf("Variable A:%d is even \n", numA); 
} 
if (numB % 2) { 
    printf("Variable B:%d is odd \n",numB); 
} 
else{ 
    printf("Variable B:%d is even \n", numB); 
} 
return 0; 
} 

내가 얻을 출력은

Please enter variables:4 5 
Variable A:4 is even 
Variable B:32767 is odd 

왜 변수 B 이하?

많은 도움에 감사드립니다. 이 문제를 해결할 수 있다면 나머지 부분을 스스로 찾아 낼 수 있기를 바랍니다. 그래서 첫 번째 숫자는 scanf에 의해 변환되고 두 번째는 초기화되지 않은 한,

+0

이러한 변수를 사용하기 전에'scanf'의 반환 값을 확인하십시오. – DCoder

답변

7

귀하의 scanf 형식은

scanf("%d, %d", &numA, &numB); 

, 숫자는 쉼표 (,)로 구분 될 것으로 예상하지만, 귀하의 의견은 아니었다.

올바른 전환 수가되었는지 확인하려면 반환 값 scanf과 친구를 항상 확인해야합니다.

+0

고마워. 항상 쉼표에주의하십시오. 검사 – regreading

관련 문제