关于if else语句的问题!
#include < stdio.h >void main()
{
char c;
printf("input a character: \n");
c=getchar();
if(c<32) printf("this is a control character\n");
else if(c>='0' && c<='9') printf("This is a digit\n");
else if(c>='A' && c<='Z') printf("This is a capital letter\n");
else if(c>='a' && c<='z') printf("This is a small letter\n");
else printf("This is an other character\n");
}
为什么不管输入什么数字,只能显示This is a digit?
一图千言 你这个程序是对的。你输入数字当然在区间中了, 基础C语法,看书。。 {:5_106:}楼上正解。 目测getcher()每次读取一个字符 char接受的是不是字符,拿字符跟32比有用么?#include <stdio.h>
void main()
{
char c;
printf("input a character: \n");
c=getchar();
if(c>='0' && c<='9')
{
printf("This is a digit\n");
}
else if(c>='A' && c<='Z')
{
printf("This is a capital letter\n");
}
else if(c>='a' && c<='z')
{
printf("This is a small letter\n");
}
else
{
printf("This is an other character\n");
}
}这个根本就是无效的:if(c<32) printf("this is a control character\n"); 这是逻辑上的错误 所以编译器没有报错。
如果我这里理解有错误,请高手出场帮我们几位菜鸟指点一下。 云客联盟 发表于 2013-11-29 19:16 static/image/common/back.gif
char接受的是不是字符,拿字符跟32比有用么?这个根本就是无效的:if(c
字符跟数字可以比较的吧 字符时1字节 32是int型吧这个应该牵扯到数据类型的自动转换了吧把字符转为int型然后再做运算 其实这道题很简单的,printf("input a character: \n");表明你需要输入一个字符,看清楚是一个,所以当你输入好多数字时例如6546594863,编译器默认输入为6,又6的十进制ASCLL码为54大于48小于57,所以必然输出This is a digit 其他也都一样,主要就是比较大小,楼主看的懂的话望采纳啊 云客联盟 发表于 2013-11-29 19:16 static/image/common/back.gif
char接受的是不是字符,拿字符跟32比有用么?这个根本就是无效的:if(c
看下面我的解答 奥特曼先生 发表于 2013-11-29 18:58 static/image/common/back.gif
目测getcher()每次读取一个字符
赞同,支持,就是这种情况 赞同赞同{:5_108:} if(c<32) printf("this is a control character\n");
改成if('c'<32)
printf("this is a control character\n");看看
页:
[1]