C언어 문제인데.... 이거 어떻게 풀어야 할까요???

sinlnyxl의 이미지

다음 문제에서 두 수를 입력 받을 때는 두 수의 곱을, 세 수를 입력 받았을 때는 이 들의 합을 출력하고 종료하는 프로그램을 만들어라. 단, 숫자 하나는 입력하지 않는다고 가정한다.

입력 예제
10 5
2 5 3

출력 예제
input^integers: /*정수 두 개 혹은 세 개를 입력 받는다 */
50
input^integers: /*정수 두 개 혹은 세 개를 입력 받는다 */
10

//전 아무리 생각해봐도 입력을 문자열로 받아서 strtok같은 함수를 쓰는것 밖에 떠오르질 않는데....
C고수분들은 어찌 생각하시나요?;; 다른 해결 방법이 있다면 알려주세요~

snowall의 이미지

입력을 몇번 받아야 하는지에 대한 제한이 없으므로 3번 받으면 됩니다.

대충 아래와 비슷한 코드가 되겠죠. (굴러가는 코드인지는 잘 모르겠네요. C로 코딩해본지가 오래되서...)

scanf(&a);
scanf(&b);
scanf(&c);
 
if c==NULL {
printf("%d",a*b);
}
else {
printf("%d", a+b+c);
}

피할 수 있을때 즐겨라! http://melotopia.net/b

cinsk의 이미지

만약 저라면:

1. fgets(또는 readline)로 문자열 받고 sscanf로 처리하거나,
2. 같은 방식으로 입력받고 strtok로 하겠습니다.

입력이 고정(파일에서 입력받는 등)이면 1번,
사람이 직접 입력하는 것이면 2번을 선택.