鱼C论坛

 找回密码
 立即注册
查看: 2066|回复: 2

[已解决]舍罕王的失算

[复制链接]
发表于 2019-9-21 15:16:26 | 显示全部楼层    本楼为最佳答案   
1、将“unsigned long long int sum = 0”改为“unsigned long long int sum”后输出“sum”的值可以发现“sum = 1”,默认情况下并不是“0”。
2、在for循环中添加“printf("%llu\n",i);”将每次循环的“i”值输出可以发现“i”为从“0”到“63”,即:第一次循环为:temp = 2^0;sum = 0+2^0。第二次循环为:temp = 2^1;sum = 0+2^0+2^1。……
(注:“i++”的意思是“先用i进行运算,然后再++”)
测试用代码如下,修改部分加了“//******”,
萌新求勿喷Thanks♪(・ω・)ノ
#include<stdio.h>
#include<math.h>
int main()
{
        unsigned long long int sum;//******
        unsigned long long int temp;
        unsigned long long int weight;
        unsigned int i;
        printf("%llu\n",sum);//******
        for(i=0;i<64;i++)
        {
                temp=pow(2,i);
                sum=sum+temp;
                printf("%llu\n",i);//*****
        }
        weight=sum/25000;
        printf("舍罕王应该给与达依尔%llu粒麦子\n",sum);
        printf("如果没25000粒麦子为1kg,那么应该给%llu公斤麦子!",weight);
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-1 04:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表