这段C语言为什么得不到我要的结果呢

来源:百度知道 编辑:UC知道 时间:2024/07/04 06:17:47
#include<stdio.h>
main()
{
char ch='\0';
printf("Input");
scanf("%c",&ch);

while(ch!='#')

{if(ch>='A'&&ch<='Z')
ch=ch+32;
if(ch>='a'&&ch<='z')
{ch=ch+2;
if(ch>'z')ch=ch-26;}}

printf("%c",ch);
}

要求:1.如果输入的字符为大写字母,则先转换为对应的小写字母
2.将a转换为c b转换为d x转换为z y转换为a z转换为b
3.其他字符不转换

呵呵.输出语句应该在循环的结尾处,不能在循环体外面.不然就只能循环结束以后才有输出了.

#include<stdio.h>
main()
{
char ch;
scanf("%c",&ch);
if(ch>='A'&&ch<='Z')
ch=ch+32;
else
if(ch>='a'&&ch<='z')
ch=ch+2;
printf("%c",ch);
}

//程序稍微 做了点修该 while可能存在了死循环 换成if 结果可能就是你要的了
再调试下,对不?
#include<stdio.h>
main()
{
char ch='\0';
printf("Input");
scanf("%c",&ch);

if(ch!='#')
{
if(ch>='A'&&ch<='Z')
ch=ch+32;
if(ch>='a'&&ch<='z')
{
ch=ch+2;
if(ch>'z')
ch=ch-26;}
}
printf("%c",ch);
}

你给的条件不够,就是那些转变,那些不转变.