|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
char i, j, p;
printf("请输入一个字符:\n");
scanf("%c", &i);
if (65 <= 'i' <= 90)
{
j = i + 32;
printf("输出结果:%c\n", j);
}
else if (97 <= 'i' <= 122)
{
p = i+( 32);
printf("输出结果:%c\n", p);
}
else
{
printf("%c", i);
}
return 0;
}
程序目的就是让输入大写会输出小写,输入小写会输出大写,输入其他字符会输出原本的字符。但是运行起来只有输入大写答到预期输出结果,我不清楚问题出在哪里?
首先是if的判断条件错了,'i'代表的是一个字符,不是你定义的变量i,在ascii表中i对应的10进制是105,所以97 <= 'i' <= 122永远都是满足的,也就是说,无论你输入什么,永远执行这两条语句
- p = i+( 32);
- printf("输出结果:%c\n", p);
复制代码
所以只有大写字母才能转换成小写字母,输入其他的的字符就输出对应字符在ascii表中位置往后增加32位对应的字符
以下是正确的代码
- #include <stdio.h>
- int main()
- {
- char c;
- printf("请输入一个字符:");
- scanf("%c",&c);
- if(c>=65&&c<=90)
- {
- printf("%c\n",c+32);
- }
- else if(c>=97&&c<=122)
- {
- printf("%c\n",c-32);
- }
- else
- {
- printf("%c\n",c);
- }
- return 0;
- }
复制代码
|
|