北极冰枪 发表于 2019-7-18 21:48:54

同样的代码,执行结果却不同。这是为何?

#include<stdio.h>
#include<math.h>
int main(){
int i;
double temp;
double sum;
double weight;

for (i=0;i<64;i++){

temp=pow(2,i);

sum=sum+temp;
}
weight=sum/25000;
printf("舍罕王应该给予达依尔%.f粒麦子!\n",sum);
printf("如果每25000粒麦子为1KG,那么应该给%.f公斤麦子!\n",weight);
return 0;

这是我最开始编写代码,结果和小甲鱼的标准答案很接近。但还是有细微的差别

ba21 发表于 2019-7-18 22:13:43

double 确定能存得下 u long long 的长度????

北极冰枪 发表于 2019-7-18 22:46:48

ba21 发表于 2019-7-18 22:13
double 确定能存得下 u long long 的长度????

为什么我改成第一张图的代码,执行结果却和小甲鱼的不一样呢   代码似乎都一样

ba21 发表于 2019-7-19 09:10:41

北极冰枪 发表于 2019-7-18 22:46
为什么我改成第一张图的代码,执行结果却和小甲鱼的不一样呢   代码似乎都一样

首先确定代码是一样的没错。
2执行结果绝对一样。这是肯定的
3你确定执行出来的.exe是你调式代码所编译出来的??????????

neverBingo 发表于 2019-7-19 14:25:07

printf中应该是"%llu"(LongLongUnsigned),不应该是“%11u”。
你把字母‘l’错看成数字‘1’了
页: [1]
查看完整版本: 同样的代码,执行结果却不同。这是为何?