来自“目标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个小时,尝试为这个“如果数字是单个数字”问题合并循环和决策。而解决方案是如此无知!
答案 0 :(得分:17)
模运算符会在除法后给出余数。如果你有8%10,结果是8,因为8/10是0,余数是8.如果你有38%10,38 / 10是3,余数为8,你会得到相同的结果。
编辑: Modulo是您通常在elemantary学校学习的第一个部门。有趣的是,大多数孩子对模数没有问题,但当他们得知8/10为0.8时,他们在理解模数时遇到了问题。