Giken Dev
반응형

https://www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net

문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
	int n;	//숫자의 개수
	char arr[101];	//입력받은 숫자를 저장
	int sum = 0;

	scanf("%d", &n);
	scanf("%s", arr);
		
	for (int i = 0; i < n; i++) {		
		sum += arr[i] - '0';	//arr[i] - 48보다 좋은 표현
	}

	printf("%d\n", sum);
}
  1. 입력할 숫자의 개수를 입력받는다.
  2. 입력받은 숫자를 char형 배열에 저장한다. (%c로 하나의 입력을 반복하는 것이 아니라, %s로 문자열을 한번에 입력)
  3. 0으로 초기화된 int형 변수 sum에 (arr[i] - '0')을 반복하여 더하기를 수행한다. (문자 '1'을 숫자 1로 바꾸는 연산)
  4. sum을 출력한다.

 

문자 '1'을 10진수 숫자로 출력시(%d) 49로 출력이 됩니다.

문자 '2'을 10진수 숫자로 출력시(%d) 50로 출력이 됩니다.

따라서 문자(숫자형 문자)로 입력받고 동일한 숫자(?)로 출력하는 방법은 다음과 같습니다.

  1. 문자 - '0' 을 %d로 출력 ( 권장 )
  2. 문자 - 48 을 %d로 출력

 

 

 

반응형
profile

Giken Dev

@기켄

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!