我输入一些字符串,然后当判断为字母时一个变量加1,但是与此同时else也在判断,这是为什么呢?
# include<stdio.h>
int main()
{
char c[10] = {'0'};
for(int i = 0;i <= 9;i++){
scanf("%c",&c[i]);
}
int le = 0;
int bl = 0;
int di = 0;
int ot = 0;
for(int i =0;i <= 9;i++){
if(65 <= c[i] && c[i] <= 122){
le++;
}
else if(c[i] == 32 || c[i] == 13){
bl++;
}
else if(48 <= c[i] && c[i] <= 57){
di++;
}
else{
ot++;
}
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n",le,bl,di,ot);
return 0;
}
if(65 <= c[i] && c[i] <= 122)
改成if('A' <= c[i] && c[i] <= 'z')
以此类推
望采纳
改成这种格式
#include <stdio.h>
int main(){
char c; //用户输入字符
int letters=0, // 字母数目
space=0, // 空格数目
digit=0, // 整数数目
others=0; // 其他字符数目
printf("输入一些字符:");
while((c=getchar())!='\n'){ // 每次读取一个字符,回车时结束
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;//字母+1
else if(c==' ')
space++;//空格+1
else if(c>='0'&&c<='9')
digit++;//数字+1
else
others++;//其他+1
}
printf("\n统计结果:\n英文字母=%d\n空格=%d\n整数=%d\n其他字符=%d\n\n", letters, space, digit, others);
return 1;
}