본문 바로가기
프로그램/C언어 1000제

C언어 169제] solved.ac class1 A + B - C

by 건티 2024. 9. 17.
728x90

출처 : 반크_세계유산 경복궁

 

문제]

JavaScript에서 +, -은 수에 대해서는 일반적인 의미의 덧셈 뺄셈의 의미를 가지고 있습니다. 하지만 문자열에 대해서 +는 두 문자열을 이어붙이라는 의미이고, -는 양쪽 문자열을 수로 해석한 이후에 빼라는 의미입니다.

A, B, C를 각각 수와 문자열로 생각했을 때 A+B-C를 출력하세요.

입력
첫 줄에는 정수 A가 주어집니다. (1 <= A <= 1,000)
둘째 줄에는 정수 B가 주어집니다. (1 <= B <= 1,000)
셋째 줄에는 정수 C가 주어집니다. (1 <= C <= 1,000)

주어지는 모든 수는 0으로 시작하지 않는 양의 정수입니다.

출력
첫 줄에는 A, B, C를 수로 생각했을 때, A+B-C를 출력하세요.
둘째 줄에는 A, B, C를 문자열로 생각했을 때, A+B-C를 출력하세요.

예제 입력 1 
3
4
5
예제 출력 1 
2
29

A, B, C를 수로 생각했을 때는, 3+4-5 = 7 - 5 = 2입니다.
A, B, C를 문자열로 생각했을 때는 '3' + '4' - '5' = '34' - '5' = 29입니다.

노트
 A+B-C는 수와 문자열 모두에서 +를 먼저 계산 한 이후 -를 계산합니다.

출처 : 백준_31403번

 

참고풀이]

#include <stdio.h>
#include <string.h> //strcat():문자열과 문자열을 이어붙이는 함수 
#include <ctype.h> //atoi():문숫자를 숫자로 변환함수 

int main()
{
   int A,B,C;//정수 3개을 입력받는다.
   char a[5],b[5],c[5];//입력된 정수를 문자로 변환할 변수.

   //세수를 입력받는다.
   while(1)
   {
      scanf("%d",&A);
      if(A>=1 && A<=1000) break;
      return 0;
   }
   while(1)
   {
      scanf("%d",&B);
      if(B>=1 && B<=1000) break;
      return 0;
   }
   while(1)
   {
      scanf("%d",&C);
      if(C>=1 && C<=1000) break;
      return 0;
   }

   //입력된 정수를 문자로 변환한다.
   sprintf(a,"%d",A);
   sprintf(b,"%d",B);
   sprintf(c,"%d",C);

   //결과 출력
   printf("%d\n",A+B-C);
   strcat(a,b);
   printf("%d\n",atoi(a)-atoi(c));

   return 0;
}

 

참고풀이 결과]

 

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글