鱼C论坛

 找回密码
 立即注册
查看: 516|回复: 10

[已解决]这个问题的代码不会写

[复制链接]
发表于 2020-8-9 16:31:45 | 显示全部楼层 |阅读模式

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

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

x
从键盘输入一个字符,如果是字母,就输出对应的ASCLL码,如果是数字字符,就转换成对应整数输出
有人有这个问题的思路吗?
从键盘上输入一个字符,scanf("%c");这个是字符的输入方法,输出就用printf("%d");
sancf("%d");这个是整数的输入方法,输出就用printf("%d") 这怎么判断输入的是字符还是数字啊?
最佳答案
2020-8-9 17:12:41
本帖最后由 永恒的蓝色梦想 于 2020-8-9 17:13 编辑
  1. #include<stdio.h>


  2. int main() {
  3.     char c = getchar();


  4.     if ('0' <= c && c <= '9') {
  5.         putchar(c);
  6.     }
  7.     else if ('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z') {
  8.         printf("%d", c);
  9.     }

  10.     return 0;
  11. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-9 16:54:36 | 显示全部楼层
我不太明白,既然题目要求输入字符。为什么还要用scanf("%d")?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 17:06:48 | 显示全部楼层
很简单,ASCCII码是按顺序来的。所以你只要判定输入值在字符'0'到'9'之间,就能确定是数字了。
判断在字符'a'到'z'或者'A'到'Z'之间就知道是字母了。字符是显示给你看的,实际上在计算机中都是一个个整数值
所以如果是字母,直接按%d输出即可。但如果是数字,因为'0'的值可不是0,所以你要查ASCII码表。减法计算,就可以。当然,你也可以不转换,直接输出字符格式%c,它显示的是0。虽然值不是0,但显示出来的是0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-9 17:12:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 永恒的蓝色梦想 于 2020-8-9 17:13 编辑
  1. #include<stdio.h>


  2. int main() {
  3.     char c = getchar();


  4.     if ('0' <= c && c <= '9') {
  5.         putchar(c);
  6.     }
  7.     else if ('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z') {
  8.         printf("%d", c);
  9.     }

  10.     return 0;
  11. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 17:17:47 | 显示全部楼层
满意麻烦给个最佳哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:31:27 | 显示全部楼层
巴巴鲁 发表于 2020-8-9 16:54
我不太明白,既然题目要求输入字符。为什么还要用scanf("%d")?

输入嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:33:05 | 显示全部楼层
巴巴鲁 发表于 2020-8-9 16:54
我不太明白,既然题目要求输入字符。为什么还要用scanf("%d")?

我想了想怎么也想不明白 这个函数我以为给用户用的呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:42:46 | 显示全部楼层
405794672 发表于 2020-8-9 17:06
很简单,ASCCII码是按顺序来的。所以你只要判定输入值在字符'0'到'9'之间,就能确定是数字了。
判断在字符 ...

恩恩,谢谢,明白了 才发现这题好简单
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:56:11 | 显示全部楼层

好的好的没问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 20:56:22 | 显示全部楼层
想摸妹妹大腚 发表于 2020-8-9 20:33
我想了想怎么也想不明白 这个函数我以为给用户用的呢

也可能我理解错了,反正用%c或楼上的getchar()都行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:57:01 | 显示全部楼层
巴巴鲁 发表于 2020-8-9 20:56
也可能我理解错了,反正用%c或楼上的getchar()都行

哈哈 没事哥们谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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