上一个解决了,但是我在里面加了个数字又不会了,大佬看看有什么问题
输入一行字符,分别统计出其中的英文、数字、空格和其他字符个数,中间用空格隔开、
#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;
} 本帖最后由 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(&DfgtYIjsgtshertxsgtw5yh
英文:38 ,数字:6 ,空格:6 ,其他:4
D:\00.Excise\C>
编译、运行实况:
页:
[1]