S1E6代码对照了没有错误输出结果不同
#include <stdio.h>#include <math.h>
int main()
{
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("舍罕王应该给予达依尔%11u粒麦子\n",sum);
printf("如果每25000粒麦子为1Kg,那么应该给%11u公斤麦子 !\n",weight);
return 0;
}
最后几行 printf 字符串占位符使用错啦,是 %llu 不是 %11u,一个是英文小写的 l ,一个是数字的 1,参考代码:
#include <stdio.h>
#include <math.h>
int main(){
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("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
return 0;
} Twilight6 发表于 2022-9-26 19:32
最后几行 printf 字符串占位符使用错啦,是 %llu 不是 %11u,一个是英文小写的 l ,一个是数字的 1,参考 ...
可以了
想问一下%llu的作用
还有sum=0的必要性 岑寂风翰 发表于 2022-9-26 20:59
可以了
想问一下%llu的作用
还有sum=0的必要性
%llu 是 64 位无符号整形占位符
sum 因为后面要使用到 sum = sum + temp ,使用之前必须初始化,所以需要先给他初始化一个值
可能回答的不是很标准,只学了 C 语言的前几课课时,后来学 Java 去了
页:
[1]