白駿10953題

6771 ワード

私はCプログラムでアルゴリズムを勉強している学生です.リンクテキスト
これは簡単なI/O問題です.
これを見て、数字間の文字(,)を処理するために、文字列で入力全体を受信し、整数に対応する値だけを追加して問題を解決すると判断しました.
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void) {
    int N;
    char str[10];
    int str_len;
    int total;

    scanf("%d", &N);    // 테스트 케이스 개수

    for(int i = 0; i < N; i++) {
        total = 0;      // 답을 출력할 변수

        scanf("%s", str);
        getchar();      // \n 문자 받아들이기

        str_len = strlen(str);
        for(int j = 0; j < str_len; j++) 
            if(isdigit(str[j]))          // 문자가 정수라면
                total += (str[j] - '0');

        printf("%d\n", total);
    }


    return 0;
}
問題を解決し、他の人のソースコードを表示することで、より簡単な解決方法を見つけました.
#include <stdio.h>

int main() {
	int t, a, b;
	scanf("%d", &t);
	while(t--) {
		scanf("%d,%d", &a, &b);
		printf("%d\n", a + b);
	}
}

Check

  • 新しい変数(int i;)発表しなくてもwhile文で解決できます.
  • scanf関数として入力すると、スペースではなく他の特殊文字を使用して値を受け入れることもできます.