[C] 백준 10952번 : A+B - 5

2020. 6. 3. 08:45

 

 

입력받은 A와 B 모두 0일 때까지 두 수의 합을 출력하는 프로그램으로 문제는 아래와 같다.

 

 

백준 10952번

 

while문에 익숙하지 않아서 다른 사람들의 코드들을 몇개 찾아본 후 코드를 작성했다.

 

결론부터 말하자면 처음 작성했던 코드를 백준에 제출하니 컴파일 에러가 났다.

#include <stdio.h>

int main(){
	int A, B;
	while(true){
		scanf("%d %d", &A, &B);
		if(A+B !=0){
			printf("%d\n", A+B);
		}	
		else{
			break;
		}
	}
} 

 

'컴파일 에러' 를 클릭하면 구체적으로 어디에서 에러가 났는지를 확인해볼 수 있는데 확인해보니 true가 선언되지 않은 부분에서 에러가 났다고 했다. 원래 true = 1 이라서 둘 다 써도 상관이 없다고 알고 있고, dev c++에서 둘 다 실행했을 때는 별 문제가 없었던 것 같은데 왜 에러가 난 건지 모르겠다..

 

 

그래서 while(1)로 코드를 수정하고, A와 B의 조건도 수정해주었다.

'두 수의 합이 0이 아닐 때' 라는 조건에서 '각각 모두 0이 아닐 때'의 조건으로 수정했다.

 

#include <stdio.h>

int main(){
	int A, B;
	while(1){ 
		scanf("%d %d", &A, &B);  //A와 B를 입력받는다
		if(A!=0 && B!=0){ //A가 0이 아니고 B가 0이 아닐 때 두 수의 합을 출력
			printf("%d\n", A+B);
		}	
		else{  //위의 조건을 만족하지 못할 경우 종료
			break;
		}
	}
} 

 

백준에 제출하니 정답 !

 

BELATED ARTICLES

more