求助各位大神们课后作业s1e13while语句中遇到的问题
要求将一段句子中大小写转换,小弟写的代码如下,编译器没有报错,可是运行无论输入什么都输出“请输入正确的英文字母!!!”,找了很久都不知道错在哪,求解。。#include <stdio.h>
int main()
{
int a;
printf("请输入需要转换的句子(EN):");
while((a=getchar())!='\n');
{
if(a>=65&&a<=90)
{
a=a+32;
}
else if(a>=97&&a<=122)
{
a=a-32;
}
else
{
printf("请输入正确的英文字母!!!");
}
putchar(a);
}
putchar('\n');
return 0;
} {:10_266:}{:10_266:}{:10_266:}对了 还有就是有大神知道倒数第二行的putchar('\n');起什么作用吗,才学习putchar函数,不是很懂。。。 1.第六行多了分号
2.就是输出回车。 while语句本身使用复合语句作为循环体,但是自身同时也是一条语句。语句从while语句开始执行,直到遇到第一个分号结束,如果存在复合语句那么以复合语句右括号结束。你的代码第6句的while循环是以分号结束的,那么此时,while在循环读取输入字符时都会自动读取到最后一位,然后结束循环,你后面花括号里的代码就相当于是顺序结构的一部分,不属于while循环了。
putchar('\n');的作用是输出一个换行符,相当于printf('\n'); 无符号整形 发表于 2018-8-12 00:05
1.第六行多了分号
2.就是输出回车。
感谢!!! 会上树的猪 发表于 2018-8-12 08:30
while语句本身使用复合语句作为循环体,但是自身同时也是一条语句。语句从while语句开始执行,直到遇到第一 ...
感谢!!! 447908543 发表于 2018-8-11 23:51
对了 还有就是有大神知道倒数第二行的putchar('\n');起什么作用吗,才学习p ...
'\n'是换行,就是回车,当你输入完字符串的时候,不是要按一下回车嘛!回车后while循环结束。
页:
[1]