注册 登录
编程论坛 C语言论坛

选择语句,输入小写字母无法输出原字母,求大佬帮助!

好烦、 发布于 2020-10-13 10:23, 1121 次点击

题目描述
输入一个大写英文字母,输出相应的小写字母。
 
输入描述
输入一个大写英文字母
 
输出描述
输出相应的小写字母,若输入的不是大写字母,则不变。
 
输入样例
输入样例1:G

输入样例2:#
 
输出样例
输出样例1:g

输出样例2:#

代码:
#include<stdio.h>
int main(void)
{
    char x;
    printf("请输入一个英文字母:");
    scanf("%c",&x);
    if('65'<=x>='90');
        x=x+32;
    printf("%c",x);
    return 0;
 }
8 回复
#2
rjsp2020-10-13 10:36
if('65'<=x>='90');
首先,不是'65'/'90',而是65/90;
其次,不是 65<=x>=90,而是 65<=x && x>=90
最后,不是 if( 65<=x && x>=90 ); 而是 if( 65<=x && x>=90 ),即尾部没有分号
#3
rjsp2020-10-13 10:38
不要出现“魔法数”

程序代码:
#include <stdio.h>

int main( void )
{
    char x;
    scanf( "%c", &x );

    if( x>='A' && x<='Z' )
        x += 'a'-'A';

    printf( "%c\n", x );
}
#4
好烦、2020-10-13 10:40
回复 楼主 好烦、
感谢!
#5
好烦、2020-10-13 10:50
回复 2楼 rjsp
感谢!
x += 'a'-'A';
这个啥意思啊?
#6
lin51616782020-10-13 11:01
以下是引用好烦、在2020-10-13 10:50:55的发言:

感谢!
x += 'a'-'A';
这个啥意思啊?

x = x+'a'-'A';
就是 x-'A'+'a'
x是大写字母 x-'A' 得到x和'A'相差多少个字母
比如'B'-'A'结果是1 表示是'B'和'A'相差1个字母
1+'a'找到和'a'相差1的小写字母 也就是'b'
实现大写转小写
#7
好烦、2020-10-13 14:51
回复 6楼 lin5161678
Soga
#8
好烦、2020-10-13 14:59
回复 6楼 lin5161678
可是为什么运行不了呢,,这个代码
#include<stdio.h>
int main(void)
{
    char x;
    scanf("%c",&x);
    if(x<='z' && x>='a')
        x += 'a'-'A';
    printf("%c",x);
    return 0;
 }
#9
rjsp2020-10-13 16:53
x += 'a'-'A';
改为
x -= 'a'-'A';
1