输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)
#include<stdio.h>intmain(){charch1,ch2;ch1=getchar();if(ch1>=97&&ch1<=121)ch2=ch1+1;e...
#include<stdio.h>
int main()
{
char ch1,ch2;
ch1=getchar();
if(ch1>=97&&ch1<=121)
ch2=ch1+1;
else if(ch1=122)
ch2=ch1-25;
printf("%c",ch2);
return 0;
}
这个在vs下是对的,但是在oj系统是错的,求高手解答 展开
int main()
{
char ch1,ch2;
ch1=getchar();
if(ch1>=97&&ch1<=121)
ch2=ch1+1;
else if(ch1=122)
ch2=ch1-25;
printf("%c",ch2);
return 0;
}
这个在vs下是对的,但是在oj系统是错的,求高手解答 展开
3个回答
展开全部
推荐你学OI或ACM就不要用VS了,最好用Dev-C++.
很显然,你的倒数第5行有问题
if中判断应该是 ch1==122你少打了个等于。
还有,应该读入一行,你只处理了一个字符。
这样看来,在VS下你的代码也没有对的道理吧~
正确代码:
#include<stdio.h>
int main()
{
char ch1,ch2;
while(1)
{
ch1=getchar();
if (ch1=='\n') break;
if(ch1>=97&&ch1<=121)
ch2=ch1+1;
else if(ch1==122)
ch2=ch1-25;
printf("%c",ch2);
}
return 0;
}
很显然,你的倒数第5行有问题
if中判断应该是 ch1==122你少打了个等于。
还有,应该读入一行,你只处理了一个字符。
这样看来,在VS下你的代码也没有对的道理吧~
正确代码:
#include<stdio.h>
int main()
{
char ch1,ch2;
while(1)
{
ch1=getchar();
if (ch1=='\n') break;
if(ch1>=97&&ch1<=121)
ch2=ch1+1;
else if(ch1==122)
ch2=ch1-25;
printf("%c",ch2);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询