带你学才带你飞S1E6数据类型课后习题
两个程序基本一样,为什么结果不一样? 我算了下unsigne long long是8个字节,我又把每个temp都答应出来了,发现两个程序都在2的31次方之后为0,可能是溢出了,但是还是不知道为什答案不一样?pow是double
unsigned long long(pow) 应该是操作系统和机器的不同导致的。
你的操作系统是不是32位的? #include <stdio.h>
#include <math.h>
int main()
{
unsigned long long sum=0,temp,weight;
int i;
for(i=0;i<64;i++)
{
temp=pow(2,i);
sum+=temp;
}
weight = sum/25000;
printf("%llu\n",sum);
printf("%llu",weight);
}
我随便抄了一下,我这边运行是对的,你调试一下 你是不是%llu打成了%11u? 无符号整形 发表于 2018-7-28 10:19
应该是操作系统和机器的不同导致的。
你的操作系统是不是32位的?
我的是64位,两个程序都是在一台电脑上编译的 洛城闻笛 发表于 2018-7-28 17:02
我的是64位,两个程序都是在一台电脑上编译的
6楼正解,你确实打错了。 向上的蜗牛 发表于 2018-7-28 10:22
你是不是%llu打成了%11u?
确实,谢谢了,能不能帮我解释下 ll的意思呢?
洛城闻笛 发表于 2018-7-28 17:07
确实,谢谢了,能不能帮我解释下 ll的意思呢?
你可以去论坛里函数快查模块里看看printf函数,我也是新手{:10_254:} 向上的蜗牛 发表于 2018-7-29 09:55
你可以去论坛里函数快查模块里看看printf函数,我也是新手
好的
页:
[1]