|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小甲鱼的代码
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int result;
- result = pow(1, 2) + pow(2, 3) + pow(3, 4) + pow(4, 5) + pow(5, 6);
- printf("结果是:%d\n", result);
- return 0;
- }
复制代码
我想使用for循环做,我的代码
- int main()
- {
- int num,i;
- int j=2;
- int number = 0;
- for (i=1;i<6;i++)
- {
- num = pow(i,j);
- j += 1;
- number = number + num;
- }
- printf("%d\n", number);
- return 0;
- }
复制代码
小甲鱼代码的结果是16739,而我的代码结果是16738 ,比预期结果少了1,我打印for循环中的 i,j 和num 结果,发现在i,j是 5,6 ,也就是pow(5,6) 的结果是15624 , 比原单独求得结果15625 少了一
请问为什么最后会出现这个问题,我在循环外求 pow(5,6) 得结果又是正确得15625 . 因为还是刚学没学到for 循环.不知道c语言中for 循环是不是有什么特性导致最后一次求值-1
不知道是不是因为 pow() 是 double 类型,而你的 num 是整型,因编译器不同,影响了结果?
|
|