Objective-C中的取模运算符

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个小时,试图将循环和决策结构纳入“如果数字是单个数字”的问题中。而解决方案却是如此无知!
1个回答

19

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

编辑: 取模就是你在小学学习的第一个除法。有趣的是,大多数孩子对取模没有问题,但当他们学了 8/10 是 0.8 后,他们就难以理解取模。


1
@Mr_Vlasov 如果这个回答解决了你的问题,你可能想要接受它(通过点击旁边的勾勾)以让其他人知道你不再寻找更好的答案,并在Stack Overflow上获得一个全新的徽章。 - Sergey Kalinichenko
1
加1是小学数学题。 - BootMaker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接