输入一个字符,判断是数字、空白还是其他。。。为什么我运行之后输出的都是other呢???
#include "stdio.h"void main()
{
int ch;
scanf("%c",&ch);
if(ch>='0'&&ch<='9')
printf("%c is number",ch);
else if(ch==' ')
printf("%c is black",ch);
else
printf("other");
}
程序代码:/*
程序功能:输入一行任意字符,求出其中英文字母、数字及其他字符的个数。
*/
# include <stdio.h>
# include <string.h>
int main(void)
{
char str[80];
int n1, n2, n3, n4, sum, i;
n1=n2=n3=n4=0;
printf("输入一行任意字符:");
gets(str);
for(i=0; i<strlen(str); i++) //计算字符长度,注:i从0开始,若i<=strlen(str)会超过字符长度多保留一个空字符
{
if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z' )
n1++;
else if(str[i]>='0'&&str[i]<='9')//注意:此处0-9是字符型,而非整型;
n2++;
else if(str[i]==' ')
n3++;
else
n4++;
}
sum = n1+n2+n3+n4;
printf("共输入:%d个字符,其中字母:%d个,数字:%d个,空格:%d个,其他字符:%d个。\n", sum, n1, n2, n3, n4);
return 0;
}
/*
----------------------------------
输入一行任意字符:De + bug.&=13
共输入:13个字符,其中字母:5个,数字:2个,空格:2个,其他字符:4个。
----------------------------------
*/