关山门门门 2022-07-27 11:38 采纳率: 100%
浏览 20
已结题

第二个printf里第二个ch和我输入的数字不一样是为什么?

#include<stdio.h>
int main(void)
{
char ch;

printf("Please enter a character.\n");
scanf("%c", &ch);
printf("The code for %c is %d.\n", ch, ch);

return 0;

}

运行结果

我输入52出53,输入c出99,输入12出49,我跟着书上输入的啊……
而且书里第二个printf的第一个ch是c

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-07-27 11:47
    关注

    第二个printf中,用%c输出的是输入的字符,用%d输出的是输入字符的ASCII码
    输入52,实际scanf只接收第一个字符'5',5的ASCII码是53,所以输出是53
    输入12,实际接收第一个字符'1',而字符1的ASCII码是49,所以输出是49
    输入字符c,接收的就是字符'c',字符'c'的ASCII码是99,所以输出是99
    没毛病啊。输入字符'c',第一个输出的就是'c'
    ===
    你先弄懂一下数字5和字符'5'的区别就明白啦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度