鱼C论坛

 找回密码
 立即注册
查看: 1819|回复: 1

上一个解决了,但是我在里面加了个数字又不会了,大佬看看有什么问题

[复制链接]
发表于 2021-11-2 23:29:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入一行字符,分别统计出其中的英文、数字、空格和其他字符个数,中间用空格隔开



#include <stdio.h>
int main()
(
   int a,b,c,d;
   char ch    ;
   for (a=b=c=d=0; (char=getchar()) != '\n';)
   {
           if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch<= 'z')  a++;
           else if (ch >= '0' && ch <= '9') b++;
           else if (ch ==' ') c++;
           else d++;
   }
   printf("英文:%d   ,数字:%d   ,空格:%d   ,其他:%d   ", a,b,c,d);
           return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-3 00:00:04 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-3 00:05 编辑
   for (a=b=c=d=0; (char=getchar()) != '\n';)  // ch 写成了 char
   {
           if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch<= 'z')  a++; // 缺少一层右括号 
        除了上述两个问题外,代码中还有多处的逗号、括号等使用的是中文字符,从而导致编译错误。
        下面是我修改的代码:
#include <stdio.h>
int main(void)
{
       int a , b , c , d ;
       char ch           ;
       for(a = b = c = d = 0 ; (ch = getchar()) != '\n';)   
       {
               if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))  a ++ ; 
               else if (ch >= '0' && ch <= '9') b++ ;
               else if (ch == ' ') c ++ ;
               else d ++ ;
       }
       printf("英文:%d   ,数字:%d   ,空格:%d   ,其他:%d" , a , b , c , d) ;
       return 0 ;
}
        编译、运行实况:
D:\00.Excise\C>g++ -o xx xx.c

D:\00.Excise\C>xx
qwrreutuGHKWfFtr3%^6586(&DfgtYIj  sgtsh  ertx  sgtw5yh
英文:38   ,数字:6   ,空格:6   ,其他:4
D:\00.Excise\C>
        编译、运行实况:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-30 14:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表