質問: num[j] - num_q[i] * powf(10.0, (float)k); i++; k--; } //num[j]が0になるので上でback_numにcopyしておいてall_sumを //求めるときに使う //num[j]の各けたを足し算する for(i=0; i=a && num_q_sum<=b){ all_sum=all_sum+back_num; } num_q_sum=0; } printf("%d\n", all_sum); return 0; } ``` ### 試したこと 実行しても希望どおりになるので何も試せませんでした。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: scanfは、値を取り込む先(第2引数以降でポインタを指定した変数)のどこまでにデータを入れられたかを返します。 scanf("%d %d %d", &n, &a, &b); の返り値が1だとa,bに値が入っていない、の返り値が2だとbに値が入っていないという事になります。 aやbに値が入れられていない(値は0のまま)だと、それ以降のプログラムが思ったように動かない可能性があるので、Warningが出たのです。 scanf("%d %d %d", &n, &a, &b); の返り値が3かどうかを調べて、3以外なら再度scanfを実行するようにすれば、問題は解決します。