【发布时间】:2015-02-03 19:12:57
【问题描述】:
我是新手,也是 Objective C 的新手。我尝试了一些示例 while 循环程序,但有些东西我根本不明白。 我已将所有变量“v”、“u”和“remainder”设置为无符号整数。
unsigned int v, u, temp;
NSLog(@"Please key in 2 non-negative integers");
scanf("%u %u", &u, &v);
while (v != 0) {
temp = u % v;
u = v;
v = temp;
NSLog(@"Value of v is %u, value of u is %u, value of temp is %u", v, u, temp);
}
}
return 0;
}
我不明白的部分是“temp = u % v”。 我知道“%”运算符用于查找 u 除以 v 的余数,然后将其分配给变量“temp”。
首先我尝试了分别存储在变量 u 和 v 中的值 150 和 35。当程序执行时,“temp”被赋值为 10(在第一个循环中),因为 150/35 (u/v) 剩下 10。
我决定切换值;现在我分别为 u 和 v 分配了 35 和 150 的值。 我预计“temp”为 0,因为 35/150 (u/v) 根本没有余数,因为它是一个分数。但不知何故,“temp”被赋值为 35(在第一个循环中),我就是不知道为什么。
为什么“temp”的值是 35?我试图用谷歌搜索“35 除以 150 的余数”来弄清楚为什么 % 运算符给了我 35 作为余数,但我找不到任何答案。 谢谢。
【问题讨论】:
标签: objective-c operators arithmetic-expressions