兵工厂 发表于 2022-1-21 21:21:44

C语言

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




int main()
{
      unsigned long long n=0;
      unsigned long long q;
      int i;
                for(i=0;i<64;i++)
                {
                        q=pow(2,i);
                        n=n+q;
                }
                printf("%d\n",n);

      return 0;
}
为啥编译出是-1,而不是一个很大的数

傻眼貓咪 发表于 2022-1-22 08:10:36

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

int main()
{
        unsigned long long n = 0;
        unsigned long long q;
        int i;
        for(i = 0; i < 64; i++)
        {
                q = pow(2, i);
                n = n + q;
        }
        printf("%llu\n", n); // <---------- 这里 ----------
        return 0;
}

汐瞳 发表于 2022-1-22 20:17:18

额,我编译出来就是个很大的数哇,你用的啥编译器

兵工厂 发表于 2022-1-24 21:47:03

汐瞳 发表于 2022-1-22 20:17
额,我编译出来就是个很大的数哇,你用的啥编译器

dev
页: [1]
查看完整版本: C语言