728x90
반응형
숫자의 합
문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
출력
입력으로 주어진 숫자 N개의 합을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <stdio.h>
int main()
{
int N;
int sum = 0;
scanf("%d",&N);
char array[N];
scanf("%s",array);
for(int i=0; i<N; i++){
sum+=array[i]-'0';
}
printf("%d",sum);
}
|
cs |
입력받은 N 의 크기를 가진 문자열이 필요하다.
array는 문자열값이 저장되는 위치를 가리키고 있고, %s를 통해서 array에 문자열을 입력받는다.
9번째 줄까지 작동했다면
array[N] 에는 공백이 없는 숫자로 이루어진 문자열이 있을 것이다. 이제 각각의 자리에 있는 숫자들을 더해줘야 한다.
for 문을 사용해서 배열 각 자리 마다의 숫자를 더해준다.
이때 char 형식을 다시 int 형으로 바꿔야 하는데,
char 각각은 아스키코드로 변형되어 출력될 수 있다.
따라서 각 자리 숫자마다 '0' 을 빼 줌으로서
입력한 그대로의 수가 출력될 수 있도록 한다.
반응형
'백준 단계별로 풀어보기 > 문자열' 카테고리의 다른 글
백준 2908 상 (0) | 2022.10.03 |
---|---|
백준 1152 단어의 개수 (0) | 2022.10.03 |
백준 1157 단어 공부 (0) | 2022.10.02 |
백준 2675 문자열 반복 (0) | 2022.10.02 |
백준 11654 아스키 코드 (0) | 2022.09.18 |