鱼C论坛

 找回密码
 立即注册
查看: 2527|回复: 3

[已解决]大佬帮忙看看

[复制链接]
发表于 2022-11-17 19:05:57 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

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

void main()
{
    char ch1,ch2;
    int n1,n2;
    ch1=getchar();
    ch2=getchar();
    n1=ch1-'0';
    n2=n1*10+(ch2-'0');
    printf("%d\n",n2);
   
   
    }
输入12
为什么输出也是12
求运算逻辑
最佳答案
2022-11-17 20:57:17
本帖最后由 jackz007 于 2022-11-17 20:59 编辑

        从表面上看,你键入了 12,于是,又输出了 12,好像一切都是那么自然合理,而实际上却不然,你键入的是字符 '1' 和 '2' ,而输出的却是整数 12,具体逻辑如下:
n1 = ch1 - '0' = '1' - '0' = 1
n2 = n1 * 10 + ch2 - '0' = 1 * 10 + '2' - '0' = 10 + 2 = 12
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-17 20:33:57 | 显示全部楼层
n1=‘1’-'0'=1
n2=n1*10+('2'-'0')=10+2=12
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-17 20:56:45 | 显示全部楼层
        是你键入的是字符 '1' 和 '2' 而输出的是整数 12 具体逻辑如下:
n1 = ch1 - '0' = '1' - '0' = 1
n2 = n1 * 10 + ch2 - '0' = 1 * 10 + '2' - '0' = 10 + 2 = 12
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-17 20:57:17 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-11-17 20:59 编辑

        从表面上看,你键入了 12,于是,又输出了 12,好像一切都是那么自然合理,而实际上却不然,你键入的是字符 '1' 和 '2' ,而输出的却是整数 12,具体逻辑如下:
n1 = ch1 - '0' = '1' - '0' = 1
n2 = n1 * 10 + ch2 - '0' = 1 * 10 + '2' - '0' = 10 + 2 = 12
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 20:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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