关山门门门 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日

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计