鱼C论坛

 找回密码
 立即注册
查看: 3180|回复: 7

课后习题 S1E13的动动手第二题

[复制链接]
发表于 2019-7-23 02:03:43 | 显示全部楼层 |阅读模式
5鱼币
#include <stdio.h>
#include <math.h>
int main()
{
    int ch;
    int num;
    long long temp;
    int decide = 0;
    const int max_int = pow(2, sizeof(int) * 8) / 2 - 1;
    const int min_int = pow(2, sizeof(int) * 8) / 2 * (-1);
    printf("请输入待转换的字符串: ");
    while ((ch = getchar()) != '\n')
    {
        if (ch >= '0' && ch <= '9')
        {
            temp = 10 * num + (ch - '0');
            if (temp > max_int || temp < min_int)
            {
                decide = 1;
                break;
            }
            else
            {
                num = temp;
            }
        }
    }
    if (decide)
    {
        printf("overflow\n");
    }
    else

    {
        if (num == 0)
        {
            printf("未找到数值\n");
        }

        else
        {
            printf("结果是 %d\n", num);
        }
    }
    getchar();
    return 0;
}
不知道为什么,判断数值是否超出int的范围时总是失败

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

使用道具 举报

 楼主| 发表于 2019-7-23 13:47:40 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-23 17:18:47 | 显示全部楼层

建议你提供你下你测试的用例
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-23 17:41:25 | 显示全部楼层
本帖最后由 1809228982 于 2019-7-23 17:44 编辑

试试单个数字输出??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-7-25 22:54:11 | 显示全部楼层
一木之禾 发表于 2019-7-23 17:18
建议你提供你下你测试的用例

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

使用道具 举报

 楼主| 发表于 2019-7-25 22:55:01 | 显示全部楼层
1809228982 发表于 2019-7-23 17:41
试试单个数字输出??

只有超出int范围的不行emm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-7-25 22:56:52 | 显示全部楼层
就是这样 TIM截图20190725225401.png
TIM截图20190723020116.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-7-26 13:45:22 | 显示全部楼层
已解决 是num要定义为long long num
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-4 01:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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