国王许诺C语言编程,请看看哪里有问题

本题问题:国际象棋盘上共有64个格子,设想在象棋盘上放麦子,第一个格子上放一粒麦子,第二个格子放二粒麦子,以后每一个格子的麦子数都按前一格的两倍计算,依此放完棋盘上的64个格子。请计算共需要多少粒麦子,这些麦子合多少立方米(已知1立方米麦子约1.4×10^8粒)。
代码:
#include
int main()
{
double a=0,b=1,c=1;
for(a=1;a<=64;a++){
b*=2;
c+=b;
a++;
}
printf("国王总共要给%if粒小麦\n",c);
return 0;
}
运行结果:

img

%if改为%lf,循环内的a++去掉。

img

两个错误:
(1)for循环里的a++多余,删掉一个
(2)printf中的%if 改为%lf , f前面是L的小写字母
还有就是题目要求立方米。
修改后运行结果:

img

代码修改如下:

#include<stdio.h>
int main()
{
    double a=0,b=1,c=1;
    for(a=1;a<=64;a++){
        b*=2;
        c+=b;
        //a++;//修改 ,这里删掉
    }
    printf("国王总共要给%lf粒小麦\n",c); //修改 ,%if 改为%lf
    printf("这些麦子约%.2lf立方米\n",c/(1.4e8));//结果保留2位小数
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632