본문 바로가기

카테고리 없음

열혈c 445p

#include <stdio.h>
#include <string.h>

int ConvToInt(char c){
    static int diff=1-'1';
    return c+diff;
    
}
//이래도 되는거임? 넣는 건 캐릭터인데 나오는 것에도 한부분인 c는 캐릭터인데 전체 다합쳐서 인티저다?

//문제풀기시작:
int main(void)
{
    char str[50];
    int len, i;
    int sum=0;
    
    printf("문자열 입력:");
    fgets(str, sizeof(str),stdin);
    len=strlen(str);
    
    for(i=0;i<len;i++)
    {
        if('1'<=str[i] && str[i]<='9')
            sum +=ConvToInt(str[i]);
    }
    printf("숫자의 총 합: %d \n",sum);
    return 0;

}

일단 풀지 못했다. 감정적이 되면서 계속 붙잡고 있으면서 뇌의 리소스만 잡아먹었다.

시간을 정해두고(대략 40분에서 1시간 생각중) 안풀리면, 그냥 해답을 보고 이해하고 핵심아이디어를 익히는 것이 좋을 것 같다.

 

스트링하고 인티저하고 뺄셈을 했을 때 아마 아스키코드값으로 나오는 모양인데, 그게 일정해서, 똑같이 생긴 스트링하고 인티저를 왔다갔다 할 수 있는지 몰랐다.

 

for문을 돌릴 때 strlen을 쓰면 더 좋은 풀이가 될 수 있는 것 같다.

 

0은 더하나 마나 이구나!