回 帖 发 新 帖 刷新版面

主题:诶,我又遇到问题了,梦梦求助

#include <stdio.h>
void main()
{char c;
 int i=0;
 int j=0;
 int m=0;
 int n=0;
 printf("please enter some characters:");
 while (getchar()!='\n')
 { c=getchar();
   printf("%c",c);
   if(c>='a'&&c<='z'||c>='A'&&c<='Z') i++;
   else if(c>='0'&&c<='9') j++;
   else if(c==' ') m++;
   else n++;
 }
 n++;
 printf("\n");
 printf("英文字母有%d个\n",i);
 printf("空格有%d个\n",j);
 printf("数字有%d个\n",m);
 printf("其他字符有%d个\n",n);
}
我想统计一串字符中空格,英文字符,数字,还有其他字符的数目,为什么输出的结果跟我想的不同?

回复列表 (共3个回复)

沙发

这一句 if(c>='a'&&c<='z'||c>='A'&&c<='Z') i++;
要改成 if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) i++;
记住哦,符号在c中经常出现问题,以后注意

板凳

我的代码
#include <stdio.h>
void main()
{char c;
 int i=0;
 int j=0;
 int m=0;
 int n=0;
 printf("please enter some characters:");
 while ((c=getchar())!='\n')       /*这儿*/
 { 
   printf("%c",c);
   if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) i++;
   else if(c>='0'&&c<='9') j++;
   else if(c==' ') m++;
   else n++;
 }
 printf("\n");
 printf("英文字母有%d个\n",i);
 printf("空格有%d个\n",m);   /* m和j 你弄反了 */
 printf("数字有%d个\n",j);
 printf("其他字符有%d个\n",n);
}

3 楼

嗯嗯,呵呵。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册