马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 是整型,因编译器不同,影响了结果?
|