#include
void main()
double a;
printf("%f",a);
scanf("%f",&a);
switch(a)
{
case 'a':printf("%f",a);
break;
default:printf("输入的字符不是字母\n");
}
}
显示错误,不知道怎么打下去了 后面还有但是不知道怎么打了,求解!
题目如下: 输入一个字符,判断字符必须为字母,为其它字符则输出“输入字符不是字母”
然后输入的字符改为当前字符的下一个字符,例:c改为d,Z改为A。注意大小写不能改变。
//char类型在c++里存的是ascii码,是int型,能直接用+1来获取下一个数
#include <stdio.h>
void main()
{
char ch = getchar(); //读字符
if (ch >= 'A'&&ch <= 'Z') //A-Z
{
ch = (ch - 'A' + 1) % 26 + 'A'; //ch-'A'代表这个数距离字母A的偏移量;+1代表字母+1;%26代表26个字母循环,也就是Z+1=A;最后计算出的偏移值+A就是实际的值
printf("%c\n", ch);
}
else if (ch >= 'a'&&ch <= 'z') //a-z
{
ch = (ch - 'a' + 1) % 26 + 'a'; //同理
printf("%c\n", ch);
}
else //其它
{
printf("输入的字符不是字母\n");
}
}
我觉得直接可以判断
if如果这个字符是不是在a到y或者A到Y之间,如果在直接加一,
else if如果不在判断是不是z或者Z,如果是则减去25,
else 直接输出不就可以了
double类型不能用在switch里边做选择
#include <stdio.h>
void main(){
char a;
printf("输入一个字符:");
scanf("%c",&a);
if(a>='a'&&a<='z'||a>='A'&&a<='Z'){
switch(a){
case 'z':
printf("a");break;
case 'Z':
printf("A");break;
default:
printf("%c",a+1);break;
}
}else{
printf("输入的字符不是字母\n");
}
}