帮我找一道简单题的错误,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/23 01:21:38
#include<stdio.h>
void main()
{
int i;
char a;
char b;
printf("输入一个字母,转换成小写的形式输出\n");
for(;;)
{
i++;
scanf("%c",&a);
if(!(a>=65 && a<=122))
{
printf("数据范围非法 请重新输入\n");
continue;
}
else
{
if(a>=65 && a<=90)
{
printf("%c\n",a);
}
if(a>=97 && a<=122)
{
printf("%c",a-32);
}
}
printf("是否继续\n");
scanf("%c",&b);
if('b'==1)
{
continue;
}
if('b'==0)
{
break;
}
}

}
写程序,用户输入一个字母,然后就把这个字母转换成小写的形式输出,然后询问用户是否还想输入,根据用户的回答控制循环;

楼上的,LZ对continue的理解很正确,错误也只是逻辑错误,是新手都会范的错误.
LZ把大写字母与小字母的ASCII码区间弄错了,所以你写的成了把小写变大写了.

#include<stdio.h>
void main()
{
int i = 0; //变量最好要初始化
char a;
for(;;) //也可以用while(true)
{
int b = -1;
i++;
printf("输入一个字母,转换成小写的形式输出\n");
scanf("%c",&a);
fflush(stdin); //清空输入缓冲,否则在这次输入的回车会被当成一个输入存到输入缓存
if((a>=65 && a<=90) || (a>=97 && a<=122)) //如果是大写字母或小写字母,大写范围(65,90),小写范围(97,122)
{
if(a>=65 && a<=90)
{
printf("%c\n",a + 32); //如果是大写就转换成小写
}
if(a>=97 && a<=122) //如果本来就是小写则直接输出
{
printf("%c\n",a);
}
}
else
{
printf("数据范围非法 请重新输入\n");
continue;
}

printf("输入数字1继续,其它键退出\n");
scanf("%d",&b);
fflush(stdin); //清空输入缓冲
if(b != 1)
{