2012-09-06 35 views
8

モジュロ演算子

プログラム5.8番号を入力するようにユーザを促し、その後、左端の桁に右端からその番号からの数字 を表示するように進みます。

// Program to reverse the digits of a number 
#import <Foundation/Foundation.h> 

int main (int argc, char *argv[]) 

{ 
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
int number, right_digit; 

NSLog (@"Enter your number."); 
scanf ("%i", &number); 

while (number != 0) { 
right_digit = number % 10; 
NSLog (@"%i", right_digit); 
number /= 10; 
} 

[pool drain]; 
return 0; 
} 

私の質問は次のとおりです。ユーザーが1桁の数字の1から9までを入力するとどうなりますか?私はそのような事件については何の資料も見つけられませんでした。 コンパイル後、プログラムはただ1桁の数字を返すだけです。何故ですか? 私はこの作業のためのコードを考え出し、文字通り2時間を費やして、この "if number is single digit"問題のループと意思決定を組み込もうとしていました。そしてその解決策はとても無知でした!

答えて

15

モジュロ演算子は、除算の後で残りの部分を返します。もしあなたが8%10の場合、結果は8/10は0なので、残りの8は0なので8です。38%10、38/10が3、残りが8、残余が8であると同じ結果になります。

edit : モジュロは、エレメンタルスクールの最初の部門として通常学んだものです。ほとんどの子どもがモジュロに問題がないのは面白いですが、8/10が0.8であることを知ったとき、モジュロを理解する上で問題があります。

+0

番号自体が思い出させてくれます。 –

+1

@Mr_Vlasovこれがあなたの質問に答えた場合は、その横のチェックマークをクリックして受諾して、あなたが改善された回答を探していないことを他の人に伝え、新しいバッジをスタックオーバーフロー。 – dasblinkenlight

+0

と小学校の1 – BootMaker