问题描述
- 弄不懂为什么会输出这个值
- /* ifdef.c -- uses conditional compilation */
#include
#define JUST_CHECKING
#define LIMIT 4int main(void)
{
int i;
int total = 0;for (i = 1; i <= LIMIT; i++){ total += 2*i*i + 1;
#ifdef JUST_CHECKING
printf(""i=%d running total = %dn"" i total);
#endif
}
printf(""Grand total = %dn"" total);return 0;
}
它输出的值是这个i=1running total=3
i=2running total=12
i=3running total=31
i=4running total=64
Grand total=64为什么输出的不是这个呢?
i=1running total=3
i=2running total=9
i=3running total=19
i=4running total=33
Grand total=33
我用的编译器是VC6.0
这是 C primer Plus 第五版第16章 ifdef.c的例子 求解...
解决方案
total += 2*i*i + 1; 等于
total = total + 2*i*i + 1;
391933 只是2*i*i + 1的值,还需要加上上一次total的值
时间: 2024-11-17 07:57:13