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

+ Recent posts