努力早睡的小柒 发表于 2021-8-11 21:21:02

求助为什么结果相差1

#include<stdio.h>
#include<math.h>
int main()
{
    int i=1,sum=0,a,result;
    while(i<=5)
    {
      a=pow(i,i+1);
      sum=sum+a;
      i=i+1;
    }
    printf("%d\n",sum);

    result=pow(1,2)+pow(2,3)+pow(3,4)+pow(4,5)+pow(5,6);
    printf("%d\n",result);

    return 0;
}

求助:
为什么结果
sum是16738
result是16739

青出于蓝 发表于 2021-8-11 21:48:42

代码没问题,我这里正常

jackz007 发表于 2021-8-11 21:59:21

本帖最后由 jackz007 于 2021-8-11 22:02 编辑

      但是,在我这里两个值一样,都是 16739
      请参考以下代码:
#include <stdio.h>

int foo(int x)
{
      int i , r                                       ;
      for(r = 1 , i = 0 ; i < x + 1 ; i ++) r *= x      ;
      return r                                          ;
}

int main(void)
{
      int i , s                                       ;
      for(s = 0 , i = 0 ; i < 5 ; i ++) s += foo(i + 1) ;
      printf("%d\n" , s)                              ;
}

努力早睡的小柒 发表于 2021-8-12 10:37:50

jackz007 发表于 2021-8-11 21:59
但是,在我这里两个值一样,都是 16739
      请参考以下代码:

D:\一些考试\考研\专业课\C语言\1.png

努力早睡的小柒 发表于 2021-8-12 10:41:26

努力早睡的小柒 发表于 2021-8-12 10:37


图片显示不出来{:9_222:},我用的是code blocks软件,编译出的结果sum和result相差1,是因为软件的原因吗
页: [1]
查看完整版本: 求助为什么结果相差1