Objective C中的模运算符

时间:2012-09-06 05:56:45

标签: objective-c

来自“目标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个小时,尝试为这个“如果数字是单个数字”问题合并循环和决策。而解决方案是如此无知!

1 个答案:

答案 0 :(得分:17)

模运算符会在除法后给出余数。如果你有8%10,结果是8,因为8/10是0,余数是8.如果你有38%10,38 / 10是3,余数为8,你会得到相同的结果。

编辑: Modulo是您通常在elemantary学校学习的第一个部门。有趣的是,大多数孩子对模数没有问题,但当他们得知8/10为0.8时,他们在理解模数时遇到了问题。