| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
请问有谁能帮忙解释一下这样写为什么不对吗?最后输出结果是0,如果把%ld换成%f就是正确结果,为什么啊?  感谢解答!!! 
#include <stdio.h> 
#include <math.h> 
 
int main(){ 
         
        printf("%ld",pow(1,2)+pow(2,3)+pow(3,4)+pow(4,5)+pow(5,6)); 
         
        return 0; 
}
抱歉,我之前的回答有误。当使用pow函数时,返回值类型确实为浮点数,并且对于整型变量直接复制可能会导致精度丢失或截断错误,因此需要进行类型转换。 
另外,在这个程序中,将1, 2, 3, 4和5的不同次幂相加,然后将结果赋给整数变量result。由于这些幂是整数,所以pow函数的返回值也应该是整数。因此,正确的代码如下:
  
- #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", result);
 
 -        
 
 -     return 0;
 
 - }
 
 
  复制代码 
输出结果为71727。  
 
 
 |   
 
 
 
 |