(c语言)关于此题中的死循环

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:00:57
这道题的要求是输入一行字符,分别统计出其中中英文字母、空格、数字和其他字符的个数。
为什么我一执行程序就是死循环呢?
#include<stdio.h>
#include<conio.h>
void main()
{
int k1=0,k2=0,k3=0,k4=0;
char b;
printf("\nenter:");
scanf("%c",&b);
while(b!='\n')
{
if(b>=65&&b<=90||b>=97&&b<=122||b==' '||b>=48&&b<=59)
{
if(b>=65&&b<=90||b>=97&&b<=122) k1++;
if(b==' ') k2++;
if(b>=48&&b<=59) k3++;
}
else k4++;
scanf("%c",b);
}
printf("zimu:%d,kongge:%d,shuzi:%d,qita:%d",k1,k2,k3,k4);
}
我试了下面的方法,还是死循环,不知道为什么。。。

你的错误之处
是那个输入的语句
scanf("%c",&b);
没有写取地址符号
所以出现死循环从而不知道为什么
咯咯

while(b!='\n')
改为while(b!='\0')

b只能输入一个字符吧?

你用的什么编译器?我用的 是Turbo C/C++3.0
刚刚调试过,你的程序没有错,是正确的,也可以运行.没有出现死循环.