当循环时,就出现错误,不懂?? #include<stdio.h> int main() { char i,a; while(

当循环时,就出现错误,不懂??
#include<stdio.h>
int main()

{
char i,a;
while(1)
{
scanf("%c",&a);
i=a-64;
printf("%c在第%d个位置,",a,i);
a+=4;
if(a>90) printf("其后第四个字母是%c\n",a-90+64);
else
printf("其后第四个字母是%c\n",a);
}
return 0;
}

第一个错误:

没有清空缓冲区,%c 读取字符时,会把你字符和换行符一起读取,所以第一次循环 a 是个字母,第二次循环 a 是个换行符,在循环中添加

while(getchar() != '\n')
    continue;

就可以解决;

第二个错误是:

无法结束循环,你可以把 a 初始化,a = 'a’;之后把while 的判断条件改一下。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-03-20
把i改成int型,而且你这个是死循环,跳不出来,你必须设置一个条件来break跳出while,不然运行程序要出问题
相似回答