| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5052 人关注过本帖
标题:输入一个字符,判断是数字、空白还是其他。。。为什么我运行之后输出的都是 ...
只看楼主 加入收藏
陌染
Rank: 2
来 自:辽宁
等 级:论坛游民
帖 子:56
专家分:39
注 册:2013-3-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:9 
输入一个字符,判断是数字、空白还是其他。。。为什么我运行之后输出的都是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 
2013-04-18 12:50
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
收藏
得分:5 
楼主看下你定义的CH是什么类型的?  CH应该定义什么类型?
2013-04-18 12:57
javay
Rank: 2
等 级:论坛游民
帖 子:14
专家分:24
注 册:2013-4-16
收藏
得分:5 
楼上正解,你把字符定义成整行了,char ch;用getchar()或者字符串使用gets() 输入,比如我以前写的一个(判断每个字符的类型,并统计个数):
程序代码:
/*
程序功能:输入一行任意字符,求出其中英文字母、数字及其他字符的个数。
*/
# 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个。
----------------------------------
*/


[ 本帖最后由 javay 于 2013-4-18 13:01 编辑 ]

光动脑还不行,还得动手!
2013-04-18 12:58
陌染
Rank: 2
来 自:辽宁
等 级:论坛游民
帖 子:56
专家分:39
注 册:2013-3-28
收藏
得分:0 
#include "stdio.h"
void main()
{
char ch;
scanf("%c",&ch);
if((ch>='48')&&(ch<='57'))
    printf("%c is number",ch);
else if(ch==' ')
    printf("%c is black",ch);
else
    printf("other");
}

刚才把int改成了char    结果还是不行啊= =
2013-04-18 13:03
陌染
Rank: 2
来 自:辽宁
等 级:论坛游民
帖 子:56
专家分:39
注 册:2013-3-28
收藏
得分:0 
好吧,我明白了,用ASCII码定义字符范围的时候多加了两个单引号。。。谢谢各位哈
2013-04-18 13:36
不眠的夜
Rank: 2
等 级:论坛游民
帖 子:63
专家分:96
注 册:2013-3-12
收藏
得分:0 
回复 5楼 陌染
判断空格时貌似还不行
else if(ch==' ')
    printf("%c is black",ch);
2013-04-18 19:02
好聚好散
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:138
专家分:123
注 册:2012-12-4
收藏
得分:0 
quitt

无节操,无真相
2013-04-18 19:05
老李来了
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-3-8
收藏
得分:0 
你输入一串字符串就别用scanf了,scanf遇到空格就结束接收了,你用gets接收就好了。
2013-04-18 21:26
陌染
Rank: 2
来 自:辽宁
等 级:论坛游民
帖 子:56
专家分:39
注 册:2013-3-28
收藏
得分:0 
回复 8楼 老李来了
嗯嗯,,,谢谢指点
2013-04-19 12:26
yun313350095
Rank: 1
等 级:新手上路
帖 子:30
专家分:8
注 册:2013-4-10
收藏
得分:0 
因为scanf是跳过空格的
2013-04-22 14:00
快速回复:输入一个字符,判断是数字、空白还是其他。。。为什么我运行之后输出的 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019282 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved