[ad_1]
整数の桁数を表示するプログラムを書きました
#include<stdio.h> int main() { int num , count=0; scanf("%d",&num); while(num) { num=num/10; count++; } printf("The number has %d digits",count); return 0;
プログラムは正常に動作しますが、num “0” にも 1 桁があることを出力したいので、0 と出力されます。
私が試したこと:
私は 1 でカウントを開始するようなことを考えましたが、残りは明らかに機能しています。
解決策 1
そして、これはあなたが1週間前に投稿した同じ質問からどうですか: 数字の桁数を数える C プログラム[^]
それ以来、答えは変わっていませんが、理解できない場合に備えて繰り返します。
見積もり:最も簡単な解決策は? 初期値とテストを変更します。
カウント 1 から始めて、ループ チェックとして「10 以上」をテストすると、すべての正の値に対して正しい答えが得られます。
それが助けになるなら、あなたはそれをあなたの心の中で大声で読むことができます.
解決策 2
解決策は簡単です。 while ループの代わりに do-while ループを使用してみませんか?
解決策 3
見積もり:数字の反転を印刷して
このようにタスクを正確に解決するのは良いことです。 新しい数値を作成しようとする代わりに、個々の数字を出力する方がよいでしょう。 100 などの数値も正しく表示されます。
解決策 4
見積もり:プログラムは正常に動作しますが、num “0” にも 1 桁があることを出力したいので、0 と出力されます。
あなたのコードは、1 つの特定のケースを除いてどのケースでも機能します。
解決策 、この特定のケースを処理する特定のコードを追加します。
C++
<blockquote class="quote"><div class="op">Quote:</div>#include<stdio.h> int main() { int num , count=0; scanf("%d",&num); // if num is special case // handle the special case // else // handle general case while(num) { num=num/10; count++; } // end of if printf("The number has %d digits",count); return 0;</blockquote>
[ad_2]
コメント