【发布时间】:2017-02-15 22:34:14
【问题描述】:
#include <iostream>
using namespace std;
int main()
{
int x = 0;
for int (i=0; i<100; i++)
if (i%9 == 0) x = i;
else x = -1;
cout << x;
return 0;
}
这段代码的 sn-p 返回值 99。
当我逐行阅读时,我是这样理解的。
- 声明一个变量x,赋值为0。
- 对于 i = 0,i 小于 100,将 i 递增 1。
- 如果 i/9 的余数等于 0,则将 i 的值赋给 x。
- 如果没有设置 x 等于 -1
- 打印出 x
在 for 循环的第一步中,i 被赋值为 0。0 除以 9 等于 0,它满足 if 语句的条件,那么为什么它不会打印出 x 等于 0 而不是 99 ?
【问题讨论】:
-
您的描述似乎与您发布的代码不符。你能修复代码吗?
-
为/否则!!你让我开心:) !!!
-
@GregHewgill 这是我们在课堂上一起做的期中准备考试,我的教授告诉我们答案是 99,我一直无法弄清楚为什么,这是给我们的代码在模拟考试中。
-
您确定在这里发帖时没有丢一两行代码吗?这段代码不会编译,更不用说产生答案了。
-
我讨厌这样的问题。我的第一反应是“这只是无效的代码!”,但随后我想“等等,这是我不知道的一些奇怪的 C++14 还是 GNU 扩展”。