鱼C论坛

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

[已解决]e1s6

[复制链接]
发表于 2019-8-18 23:22:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<math.h>

int main()
{
        long int result;
        int i;
        int re;
        result = 2;
        if (i=1;i<64;i++);
        {
                result = result * 2;
                re = re + result;
        }
        re = result / 25000;
        printf("舍罕王需要付给达依尔%ukg麦子",re);
       
        return 0;
}
请问为什么这个运行不了?我已经试了好多遍了,一直找不清错误到底在哪。。。
最佳答案
2019-8-19 01:02:19
本帖最后由 jackz007 于 2019-8-19 01:11 编辑

    最要命的问题是:

        if (i=1;i<64;i++) ;

    应该把语句末尾的分号去掉

    我把程序改了一下,你可以试试看。
#include <stdio.h>

int main()
{
        unsigned __int64 b , re , result                     ;
        int i , k                                            ;
 
        for(result = 0 , i = 0 ; i < 64 ; i ++) {
                for(b = 1 , k = 0 ; k < i ; k ++) b *= 2     ;
                result += b                                  ;
        }
        re = result / 25000                                  ;
        printf("舍罕王需要付给达依尔:%I64u kg 麦子\n" , re) ;
}

      本代码循环的作用就是计算 result = 2 ^ 0 + 2 ^ 1 + 2 ^ 2 + ... + 2 ^ 63 = 2 ^ 64 - 1 = 0xFFFFFFFFFFFFFFFF = 18446744073709551615,也就是 64 位无符号长整型数的最大极限值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-19 01:02:19 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-8-19 01:11 编辑

    最要命的问题是:

        if (i=1;i<64;i++) ;

    应该把语句末尾的分号去掉

    我把程序改了一下,你可以试试看。
#include <stdio.h>

int main()
{
        unsigned __int64 b , re , result                     ;
        int i , k                                            ;
 
        for(result = 0 , i = 0 ; i < 64 ; i ++) {
                for(b = 1 , k = 0 ; k < i ; k ++) b *= 2     ;
                result += b                                  ;
        }
        re = result / 25000                                  ;
        printf("舍罕王需要付给达依尔:%I64u kg 麦子\n" , re) ;
}

      本代码循环的作用就是计算 result = 2 ^ 0 + 2 ^ 1 + 2 ^ 2 + ... + 2 ^ 63 = 2 ^ 64 - 1 = 0xFFFFFFFFFFFFFFFF = 18446744073709551615,也就是 64 位无符号长整型数的最大极限值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-19 14:41:32 | 显示全部楼层
本帖最后由 白牡丹秀色可餐 于 2019-8-19 14:45 编辑

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 18:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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