質問: i3 + i; //ここからがわかりません// } printf("%d",i3); printf("/n"); } int main(void) { char str[MAXLEN]; scanf("%s",str); sum(str); return 0; } ``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 考え方はおおむね合っています。 `i3`を毎回`=`で設定したのでは、前の値(それまでの合計値)が失われてしまう点と、`i3 + i`では意味のある値にならない点が間違っていますね。 ``` #include #include #define MAXLEN 128 void sum(char str[]) { int sum = 0; for (int i = 0; isdigit(str[i]) && isdigit(str[i + 1]); i += 2) { sum += (str[i] - '0') * 10 + (str[i + 1] - '0'); } printf("%d\n", sum); } int main(void) { char str[MAXLEN]; fgets(str, sizeof(str), stdin); sum(str); return 0; } ```