2017-10-31 16 views
-2

私は、Cプログラミングのための小さな簡単な学校プロジェクトを持っています。私は数字を書いてその逆を取得するはずで、このコードの仕組みを理解できませんでした。だから、whileループで何が起きているのか、私たちはなぜこれらの操作を使うのか、そして%10は何ですか?Cプログラミング "Number Reverse"

ありがとうございます!

/* Reverse number using while loop */ 

#include<stdio.h> 
int main() 
{ 
    int num, reverse=0; 
    scanf("%d",&num); 
    while(num > 0) 
    { 
     reverse= reverse*10; 
     reverse = reverse + (num%10); 
     num = num/10; 
    } 
    printf("%d",reverse); 
    return 0; 
} 
+1

https://stackoverflow.com/a/20638659/4944425 –

+1

「42」などの小さな数字を試して、各ステップで値をプリントアウトするとどうなるかを確認してください。あなたの家庭教師は何を言っていますか? –

+0

とgoogle 'c%operator' – pm100

答えて

0

'Whileループ'は、入力された数字の数を繰り返します。

「num%10」は、numを10で割った余りを意味します。これは、最後の数字を知るプロセスです。

たとえば、 '123'と入力するとwhileループが3回繰り返されます。

最初のステップ、逆 - > 3、NUM - > 12

第二に、逆 - > 1

第三に、逆 - - > 320 - > 321、NUM> 30 - > 32、NUM - > 0

したがって、逆の番号を取得することができます!

+0

ありがとうございました! – hobaa

0

whileループは、入力された数字の数字が逆になって別の数字(reverse)として保存される場所です。これを行うには、元の番号の最後の数字に最初にアクセスする必要があります。 %モジュロ演算子は、除算の残りの部分を返します。最初の数字を10で割っているので、最後の数字が残りの数字になります。その数字を逆数の最初の数字として保存し、何とか元の数字の次の数字に戻す必要があります。逐次桁を格納するには、現在の反転番号に10を掛けて次の桁を追加します。あなたはreverseの右に次の桁を追加します。すべての桁を追加した後、完全な逆の番号を取得します。元の番号の次の桁に移動すると、部門の商を残す事業者/オペレータのプロパティが使用されます。 10で割ると、与えられた数字の最後の数字が切り捨てられます。それはまた、whileループの状態についても説明します。あなたの数字が0になると、あなたはその数字のすべてを辿ったことになります。

+0

ありがとう! – hobaa