1215787625 发表于 2023-10-25 19:05:44

为什么每次输出都是A

#include<stdio.h>
int main()
{
        char a;
        scanf("%c",&a);
        if (a > 64 && a <90)
       
        printf("%c",a + 1);
        else if ( a = 90)
        printf("%c",65);
        else if(a > 96&& a < 122)

        printf("%c",a+1);
        else if(a = 122)

        printf("%c",97);
        else
        printf("输入数据有误。");
        return 0;
}

isdkz 发表于 2023-10-25 19:05:54

问题出在第10行和第15行的判断条件上。在C语言中,判断相等应该使用双等号"==",而不是单等号"="。所以第10行和第15行的判断条件应该改为"a == 90"和"a == 122"。

另外,你的代码中没有处理输入小写字母"a"和大写字母"Z"的情况。所以你需要在第6行添加一个判断条件,判断输入是否为小写字母"a",如果是,则输出"b";在第12行添加一个判断条件,判断输入是否为大写字母"Z",如果是,则输出"A"。

修改后的代码如下:

#include <stdio.h>

int main()
{
    char a;
    scanf("%c", &a);
   
    if (a >= 'A' && a < 'Z')
      printf("%c", a + 1);
    else if (a == 'Z')
      printf("A");
    else if (a >= 'a' && a < 'z')
      printf("%c", a + 1);
    else if (a == 'z')
      printf("a");
    else
      printf("输入数据有误。");
   
    return 0;
}


这样修改后的代码,根据输入的字母,会输出其后一个字母。如果输入的是大写字母"Z",则输出"A";如果输入的是小写字母"z",则输出"a"。
页: [1]
查看完整版本: 为什么每次输出都是A