백준 단계별로 풀어보기/문자열

백준 11720 숫자의 합

jgs7784 2022. 9. 28. 03:01
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' 을 빼 줌으로서

입력한 그대로의 수가 출력될 수 있도록 한다.

 

 

 

 

 

반응형