【解決方法】数値の反転を表示


私は C で私の CS クラスのプログラムを書き、数字の逆数を印刷しました。

#include <stdio.h>
int main()
{
  int n, r = 0;
  scanf("%d", &n);

    while (n != 0)
  {
    r = r * 10;
    r = r + n%10;
    n = n/10;
  }

  printf("The reverse of %d is %d\n", n , r);

  return 0;

I am getting the result as lets say for number 123 : " The reverse of 0 is 321 "

What I have tried:

My code seems fine i dont get it why it s not working i ve checked anything

解決策 1

0x01AA が例で示したように、あなたのアプローチには多くの欠陥があります。
「出力番号」を構築しようとする代わりに、抽出した各数字を出力します。

最初に改行なしで人間が読めるテキストと入力番号を出力します。
次に、ループに入り、数字を順番に出力します。
ループが終了したら、改行を出力します。

を使用することを検討することをお勧めします。 do ... while の代わりにループ while. 先に進む前に、その理由を理解できるかどうかを確認してください。

解決策 2

0x01AA すでに解決策を提供しています。
同様に、数値の逆数を計算する関数を作成してから呼び出すこともできます。

//...
  printf("The reverse of %d is %d\n", n, reverse(n));
//...

解決策 3

見積もり:

私のコードは問題ないようです。なぜ機能しないのかわかりません。何もチェックしませんでした

コードが実行していると考えていることと現実には違いがあります。 ボンネットの下に目を向けて、何が起こっているのかを正確に確認する時が来るかもしれません. 選択するツールはデバッガーです.

コードが期待どおりに動作しないか、理由がわかりません。

ほぼ普遍的な解決策があります。コードをデバッガーで段階的に実行し、変数を調べます。
デバッガーは、コードが何を行っているかを示すためにここにあり、あなたのタスクはコードが何をすべきかを比較することです。
デバッガーには魔法はありません。コードが何をすべきかはわかりません。バグを見つけることはありません。何が起こっているのかを示すことで、バグを見つけるのに役立ちます。 コードが期待どおりに動作しない場合は、バグに近づいています。
コードの動作を確認するには: ブレークポイントを設定してコードの実行を確認するだけです。デバッガーを使用すると、行を 1 行ずつ実行し、実行時に変数を調べることができます。

デバッガ – ウィキペディア (フリー百科事典)[^]

Visual Studio 2010 でのデバッグの習得 – 初心者向けガイド[^]
Visual Studio 2010 を使用した基本的なデバッグ – YouTube[^]

1.11 — プログラムのデバッグ (ステッピングとブレークポイント) | C++ を学ぶ[^]

デバッガーは、コードが何を行っているかを表示するためだけに存在し、あなたのタスクはコードが何をすべきかを比較することです。

ところで、入力を数値として使用するのは間違ったアプローチかもしれません。
入力が 1200 の場合、どのような出力が期待されますか?
21 または 0021 ?

言葉の扱い方を考えて文字を逆順に並べる。

コメント

タイトルとURLをコピーしました