求教大神一道C语言题目。万分感谢!

2025-05-13 00:23:32
推荐回答(1个)
回答1:

你的return四遍完全就是没有任何用的,你已经定义了全局变量了,不用return。问题在于你虽然敲击了回车,但那并不会被输入。所以你while循环可能会一直循环下去,直到碰巧碰到一个字符等于'\n'

#include
int l,n,b,o;
int count(char a[])
{
 char *m=a;
 
 l=n=b=o=0;
 while(*m!=0)
 {
   if(*m>='0'&&*m<='9')
  n++;           //数字统计
   else if(*m>='a'&&*m<='z'||*m>='A'&&*m<='Z')
  l++;            //字母统计
   else if(*m==' ')
  b++;            //空格统计
   else
  o++;            //其他字符统计
   m++;
 }
}

int main()
{
 char str[100] = {0};
 
 printf("请输入一句话:");
 scanf("%s",str);
 count(str);
 printf("字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",l,n,b,o);
return 0;
}