老牛来学习 发表于 2020-6-25 17:22:54

C语言循环问题

请问一下,为什么下面这两段代码执行出来结果不一样,这逻辑是一样的啊{:10_243:}

#include<stdio.h>
#include<math.h>

int main()
{
    int i,j;
    int result = 0;
    for(i = 1,j = 2; i < 6; i++,j++)
    {
      result = pow(i,j)+result;
    }
    printf("%d",result);
}


#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;
}

qiuyouzhi 发表于 2020-6-25 17:26:55

第二个只是加上了pow的结果,一个不光加上了pow,还加上了result的结果。

pxxzhj 发表于 2020-6-25 17:27:59

我看了一遍代码感觉也是一样的 ,实测我这里跑出来的结果是两段代码结果是一致的
你出现了不同的结果会不会有其他原因啊?

Twilight6 发表于 2020-6-25 17:28:16



不对啊.....我运行结果都一样呀

你发代码前可能对代码有了改动?

现在的代码两个都是一样的结果{:10_250:}

老牛来学习 发表于 2020-6-25 17:45:47

qiuyouzhi 发表于 2020-6-25 17:26
第二个只是加上了pow的结果,一个不光加上了pow,还加上了result的结果。

我result是等于0的啊
为啥我上面跑出来是16738
下面的是16739

老牛来学习 发表于 2020-6-25 17:46:36

pxxzhj 发表于 2020-6-25 17:27
我看了一遍代码感觉也是一样的 ,实测我这里跑出来的结果是两段代码结果是一致的
你出现了不同的结果会 ...

为啥我上面跑出来是16738
下面的是16739
并无改动,我现在复制粘贴进去也是这样

老牛来学习 发表于 2020-6-25 17:47:21

Twilight6 发表于 2020-6-25 17:28
不对啊.....我运行结果都一样呀

你发代码前可能对代码有了改动?


为啥我上面跑出来是16738
下面的是16739
并无改动,我现在复制粘贴进去也是这样

qiuyouzhi 发表于 2020-6-25 17:47:22

老牛来学习 发表于 2020-6-25 17:45
我result是等于0的啊
为啥我上面跑出来是16738
下面的是16739

那是刚开始
后来加上了一次,result还是0吗?

Twilight6 发表于 2020-6-25 17:50:17

老牛来学习 发表于 2020-6-25 17:47
为啥我上面跑出来是16738
下面的是16739
并无改动,我现在复制粘贴进去也是这样



都是 16739 吧

第一个代码,运行结果:



第二个代码,运行结果:

Twilight6 发表于 2020-6-25 17:51:00

老牛来学习 发表于 2020-6-25 17:47
为啥我上面跑出来是16738
下面的是16739
并无改动,我现在复制粘贴进去也是这样



都是16739你再试试看?

老牛来学习 发表于 2020-6-25 17:52:54

qiuyouzhi 发表于 2020-6-25 17:47
那是刚开始
后来加上了一次,result还是0吗?

没看懂

ajxbobo 发表于 2020-6-25 18:21:16

我这边结果也是一致的,没有不同啊

405794672 发表于 2020-6-25 18:41:09

我这样写循环的时候受到了vs2019的警告,提示说逗号表达式取值什么什么的。吓得我立马改了。你的编译器没有提醒你吗?
页: [1]
查看完整版本: C语言循环问题