質問: 0; i < 5; i++) { X += mat[i]; } printf("%d", X); return 0; } ``` 入力12345 15続行するには何かキーを押してください . . . こっちだと5桁でうまくいきました。 ### 補足情報(言語/FW/ツール等のバージョンなど) VS2017を使っています より詳細な情報
回答: 「該当のソースコード」は、以下の部分でNの値を0にしています。 ``` while (N != 0) { N = N / 10; j++; } ``` その後でNを使って計算しようとしても、0なので元々のNの値の各桁の数値は求めようがありません。 これが0ばかりの結果になる理由です。 =ヒント= 1桁目(一位の数値)は、 N % 10 で求められます。 この値を m とすると、2桁目は、 (N - m)/10 の一桁目ですから、 ((N - m)/10) % 10で求められます。 同様にして、下から順に桁の数値を求めていって、最後に上の桁から数値を出力すれば良いわけです。 求められた各桁の数値は、配列にいれてゆくと理解しやすいコードになりますよ。 やってみてください。