반응형
https://www.acmicpc.net/problem/11720
문제
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);
}
- 입력할 숫자의 개수를 입력받는다.
- 입력받은 숫자를 char형 배열에 저장한다. (%c로 하나의 입력을 반복하는 것이 아니라, %s로 문자열을 한번에 입력)
- 0으로 초기화된 int형 변수 sum에 (arr[i] - '0')을 반복하여 더하기를 수행한다. (문자 '1'을 숫자 1로 바꾸는 연산)
- sum을 출력한다.
문자 '1'을 10진수 숫자로 출력시(%d) 49로 출력이 됩니다.
문자 '2'을 10진수 숫자로 출력시(%d) 50로 출력이 됩니다.
따라서 문자(숫자형 문자)로 입력받고 동일한 숫자(?)로 출력하는 방법은 다음과 같습니다.
- 문자 - '0' 을 %d로 출력 ( 권장 )
- 문자 - 48 을 %d로 출력
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준][c] 2675번: 문자열 반복 (0) | 2021.06.28 |
---|---|
[백준][c] 10809번: 알파벳 찾기 (0) | 2021.06.28 |
[백준][c] 11654번: 아스키 코드 (0) | 2021.06.26 |
[백준][c] 1065번: 한수 (0) | 2021.06.26 |
[백준][c][hard] 4673번: 셀프 넘버 (0) | 2021.06.25 |