|
发表于 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>
复制代码
编译、运行实况:
|
|