9

来自“Objective C 编程”(Kochan):

程序 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 到 9 时会发生什么?我找不到关于这种情况的任何材料。编译后,程序只需继续返回该单个数字。这是为什么?我试图为这项任务编写代码并花费 2 个小时,试图为这个“如果数字是个位数”问题合并循环和决策。解决方案是如此无知!

4

1 回答 1

19

模运算符为您提供除法后的余数。如果您有 8 % 10,则结果为 8,因为 8 / 10 为 0,余数为 8。如果您有 38 % 10,则得到相同的结果,38 / 10 为 3,余数为 8。

编辑:模数是您通常在小学第一科时学到的。有趣的是,大多数孩子对模数没有问题,但是当他们得知 8 / 10 是 0.8 时,他们对模数的理解就有问题了。

于 2012-09-06T06:11:50.027 回答