老牛来学习 发表于 2020-2-5 21:34:06

题目:大小写转换题目问题

#include <stdio.h>

int main()
{
      char a;
      printf("请输入一个字符:\n");
      scanf("%c",&a);
      if(a>='a'&&a<='z')
                a+=32;
                printf("该字符的大写字母为:\n",a);
      else if(a>='A'&&a<='Z')               //好像是说我这行有问题。
                a-=32;
                printf("该字符的小写字母为:\n",a);
      else
                printf("输入字符为:\n",a);
}

不明白是哪里错了

zltzlt 发表于 2020-2-5 21:42:08

本帖最后由 zltzlt 于 2020-2-5 22:00 编辑

ASCII 码搞反了。字符串没有格式化,而且多行内容要用大括号 {} 括起来。

#include <stdio.h>

int main()
{
    char a;
    printf("请输入一个字符:\n");
    scanf("%c", &a);
    if (a >= 'a' && a <= 'z')
    {
      a -= 32;
      printf("该字符的大写字母为:%c\n", a);
    }
    else if (a >= 'A' && a <= 'Z')
    {
      a += 32;
      printf("该字符的小写字母为:%c\n", a);
    }
    else
      printf("输入字符为:%c\n", a);
}

一个账号 发表于 2020-2-5 21:42:16

本帖最后由 一个账号 于 2020-2-5 21:47 编辑

多行内容要用大括号"{}"括起来,而且忘记格式化了,而且写反了:
#include <stdio.h>

int main()
{
      char a;
      printf("请输入一个字符:\n");
      scanf("%c",&a);
      if(a>='a'&&a<='z')
      {
                a-=32;
                printf("该字符的大写字母为:%c\n",a);
            }
      else if(a>='A'&&a<='Z')
            {
                a+=32;
                printf("该字符的小写字母为:%c\n",a);
      }
      else
                printf("输入字符为:%c\n",a);
}

Sun正气 发表于 2020-2-5 21:43:58

a比A的ASCII码大32
页: [1]
查看完整版本: 题目:大小写转换题目问题