반응형
https://www.acmicpc.net/problem/5656
문제
C언어의 비교 연산자는 아래 표에 나와있다.
연산자뜻> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
== | 같다 |
!= | 같지 않다 |
이 연산자는 두 피연산자를 비교하고, (왼쪽 값과 오른쪽 값) true또는 false (1 또는 0)을 리턴한다. 예를 들어, 2 > 3은 "false"를 리턴하고 (2는 3보다 작기 때문), 3 != 4는 "true", 3 >= 3은 "true"를 리턴한다.
C언어의 비교 연산식이 주어졌을 때, 결과를 구하는 프로그램을 작성하시오.
입력
입력은 최대 12000줄로 이루어져 있다. 각 줄은 두 정수 a, b가 주어지며, 정수 사이에는 연산자 ">", ">=", "<", "<=", "==", "!="중 하나가 주어진다. 연산자와 피연산자 사이에는 공백이 하나 있으며, 연산자로 "E"가 주어진 경우에는 프로그램을 끝낸다. (-10000 ≤ a,b ≤ 10000)
출력
입력의 각 줄 마다 입력으로 주어진 식의 결과가 "true"인지 "false"인지 출력한다.
예제 입력 1 복사
3 != 3
4 < 4
4 <= 5
3 E 3
예제 출력 1 복사
Case 1: false
Case 2: false
Case 3: true
코드
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
int a,b;
string str;
int j=1;
while(true){
cin>>a>>str>>b;
if(str=="E"){
break;
}
for(int i=0; i<str.length(); i++){
if(str[i+1]=='='){
if(str[i]=='>'){
if(a>=b){
cout<<"Case "<<j<<": true\n";
}
else{
cout<<"Case "<<j<<": false\n";
}
}
else if(str[i]=='<'){
if(a<=b){
cout<<"Case "<<j<<": true\n";
}
else{
cout<<"Case "<<j<<": false\n";
}
}
else if(str[i]=='='){
if(a==b){
cout<<"Case "<<j<<": true\n";
}
else{
cout<<"Case "<<j<<": false\n";
}
}
else if(str[i]=='!'){
if(a!=b){
cout<<"Case "<<j<<": true\n";
}
else{
cout<<"Case "<<j<<": false\n";
}
}
}
else if(str[i]=='>'){
if(a>b){
cout<<"Case "<<j<<": true\n";
}
else{
cout<<"Case "<<j<<": false\n";
}
}
else if(str[i]=='<'){
if(a<b){
cout<<"Case "<<j<<": true\n";
}
else{
cout<<"Case "<<j<<": false\n";
}
}
}
j++;
}
return 0;
}
|
cs |
반응형
'백준 > C++' 카테고리의 다른 글
[BaeKJoon/C++] 백준 10867 c++ 중복 빼고 정렬하기 (0) | 2022.02.06 |
---|---|
[BaeKJoon/C++] 백준 2495 c++ 연속 구간 (0) | 2022.02.06 |
[BaeKJoon/C++] 백준 2774 c++ 아름다운 수 (0) | 2022.02.05 |
[BaeKJoon/C++] 백준 1100 c++ 하얀 칸 (0) | 2022.02.05 |
[BaeKJoon/C++] 백준 2386 c++ 도비의 영어 공부 (0) | 2022.02.05 |