为什么每次输出都是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;
} 问题出在第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]