|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
查找了好久一直没明白···问题在哪里···问题貌似是在 temp = pow(2,i); 这段 我把2和i对调就可以编译输出····把 i 改成数字就可以编译了···是什么问题?
本帖最后由 jackz007 于 2019-10-6 00:58 编辑
这个代码本身并没有问题,只是代码中用到了数学库,在 Linux 系统下编译必须添加 -lm 选项:
- gcc -lm test7.c && ./a.out
复制代码
如果是在 Windows 下使用 gcc 进行编译,需要进行一点修改,下面的代码使用 tdm-gcc 5.1.0 正常编译。
- #include <stdio.h>
- #include <math.h>
- int main(void)
- {
- unsigned long long sum = 0 ;
- unsigned long long temp ;
- unsigned long long weight ;
- int i ;
- for(i = 0 ; i < 64 ; i ++) {
- temp = pow(2 , i) ;
- sum = sum + temp ;
- }
- weight = sum / 25000 ;
-
- printf("%I64u\n" , sum) ;
- printf("%I64u\n" , weight) ;
- }
复制代码
- C:\Bin>g++ -o shehan2 shehan2.c
- C:\Bin>shehan2
- 18446744073709551615
- 737869762948382
- C:\Bin>
复制代码
|
|