鱼C论坛

 找回密码
 立即注册
查看: 2313|回复: 1

课程问题。

[复制链接]
发表于 2011-10-27 09:48:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 solomon_gao 于 2011-10-27 10:48 编辑

题目:
输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后的到的字符。

测试环境:Windows 7 旗舰版(7600)
测试软件:VS 2010 SP1旗舰版

#include <stdio.h>
int main (void)
{
char zm,a;
printf("请输入一个字母:");
scanf_s("%c",&zm);
if ( zm >= 65 && zm <= 90)
{
  a = zm +32;
  printf("您输入的是大写字母,现在给你转换出小写字母%c",a);
}
else
{
  printf("您输入的小写字母,无需转换。它是%c",zm);
}
}

我想问的问题:
1:如果输入的是一个大写字母A,它是否直接转换成数字65进行比较?
2:如果不是的话, if ( zm >= 65 && zm <= 90)更换成 if ( zm >= ‘A’ && zm <= ‘Z’ )还是不能正常运行。为什么呢?
3:另外这个程序不管输入什么字母,if的条件都假呢?而且printf("您输入的小写字母,无需转换。它是%c",zm);
     也输出不了字母。

本人最新才开始学习C语言。希望会的帮忙帮忙回答下。谢谢了!


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-27 10:24:29 | 显示全部楼层
scanf_s("%c",&zm);
换成scanf("%c",&zm);就可以运行了。。并不是你问题中第二个的原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-23 16:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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