0. 문제
ⅰ. 두 정수 A와 B를 입력받아, A+B를 출력하시오.
■ 조건 : 0 < (A or B) < 10
■ 예제 입력 : 1 2
■ 예제 출력 : 3
ⅱ. 두 정수 A와 B를 입력받아, A-B의 절댓값을 출력하시오.
■ 조건 : 0 < (A or B) < 10
■ 예제 입력 : 2 6
■ 예제 출력 : 4
Ⅰ. 두 정수 A와 B를 입력받아, A+B를 출력하시오.
ⅰ. scanf() (입력자가 조건을 지킬 것이라 가정)
■ C언어에서 입력을 받는 가장 대표적인 함수는 scanf()이다.
■ scanf("//서식지정 문자열//",&변수[,&변수...]);의 형태로 쓴다.
■ 서식지정 문자열에는 입력받을 변수의 데이터형에 대한 서식지정자를 공백이나 쉼표 등으로 구분해서 쓴다.
■ 서식지정자 사이의 구분은 주로 공백으로 하나, 다른 기호로 할 수도 있다.
■ 입력이 끝났음은 줄바꿈기호(엔터키)를 입력해서 한다.
■ 입력 서식에 어긋나게 입력될 경우 입력을 받지 못하니 주의해야한다.
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d",&a, &b);
printf("%d",a+b);
return 0;
}
ⅱ. scanf() (입력자가 조건을 지키도록 강제)
■ 언제든 입력자는 잘못 입력할 가능성이 있으므로 입력 전 안내와 안전장치를 해두는 경우가 많다.
#include <stdio.h>
int main()
{
int a = 0, b = 0;
while(1) {
printf("10미만의 양수 2개를 공백으로 구분해서 입력하세요.\n");
scanf("%d %d",&a, &b);
if(a>0 && a<10 && b>0 && b<10) {
break;
}
}
printf("%d",a+b);
return 0;
}
ⅲ. cin (입력자가 조건을 지킬 것이라 가정)
■ C++에서는 cin이라는 입력 객체를 제공한다.
■ cin은 서식문자열 없이 바로 입력받을 수 있다.
■ cin으로 2개 이상의 변수의 입력을 받을 경우 공백문자나 줄바꿈문자를 입력함으로 구분한다.
■ 입력 완료 또한 줄바꿈 문자로 입력받는데, 변수에 대한 입력값이 없을 경우에는 입력 완료로 처리되지 않는다.
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a+b;
return 0;
}
ⅳ. cin (입력자가 조건을 지키도록 강제)
■ 언제든 입력자는 잘못 입력할 가능성이 있으므로 입력 전 안내와 안전장치를 해두는 경우가 많다.
#include <iostream>
using namespace std;
int main()
{
int a = 0, b = 0;
while(1) {
cout << "2개의 10미만의 양수를 입력하세요. \n";
cin >> a >> b;
if(a>0 && a<10 && b>0 && b<10) {
break;
}
}
cout << a+b;
return 0;
}
Ⅱ. 두 정수 A와 B를 입력받아, A-B의 절대값을 출력하시오.
ⅰ. C스타일 풀이 (abs함수 사용)
■ 절대값을 출력하기 위해서 abs 함수를 사용했다.
■ abs함수는 stdlib.h 헤더파일에 정의되어 있다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("%d", abs(a-b));
return 0;
}
ⅱ. C++스타일 풀이 (삼항 연산자 사용)
■ 절대값을 출력하게 하기 위해서 a>b일 때와 아닐 때, 두 경우로 나눴다.
■ if를 사용할 수도 있지만 간단한 양자택일이므로 삼항 연산자를 활용했다.
■ a>b의 반대는 a<=b인 경우밖에 없다.
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << (a>b?a-b:b-a);
return 0;
}