| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 562 人关注过本帖
标题:为什么我的答案总少了1???
只看楼主 加入收藏
moxio
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-10-31
收藏
 问题点数:0 回复次数:8 
为什么我的答案总少了1???
#include <stdio.h>
int main (void)
{
   
    int zm,kg,sz,qt;
    char x;
    scanf("%c",&x);
   zm=kg=sz=qt=0;
    while((x=getchar())!='\n')
    {
    if(x>='a'&&x<='z'||x<='z'&&x>='a')
    ++zm;
    else if (x==' ' )   
    ++kg;
    else if('0'<=x&&x<='9')
    ++sz;
    else
    ++qt;
    }
    printf("%d %d %d %d\n",zm,kg,sz,qt);
}
例如输入123 显示  0 0 2 0
到底是怎么回事啊???
搜索更多相关主题的帖子: include 
2013-10-31 16:24
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
收藏
得分:0 
没分啊
2013-10-31 16:57
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
程序代码:
#include <stdio.h>
int main (void)
{
   
    int zm,kg,sz,qt;
    char x;
    // scanf("%c",&x);
    zm=kg=sz=qt=0;
    while((x=getchar())!='\n')
    {
        if(x>='a'&&x<='z'||x<='Z'&&x>='A')
            ++zm;
        else if (x==' ')   
            ++kg;
        else if('0'<=x&&x<='9')
            ++sz;
        else
            ++qt;
    }
    printf("%d %d %d %d\n",zm,kg,sz,qt);
}
2013-10-31 19:09
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
      你的问题是scanf()和getchar()都可以输入字符,而scanf()只输入了一个字符,getchar()直到遇到换行符才停止输入字符,但他们输入的字符却在一块,而你的计数却从while(){}里面开始的,所以第一字符并没有计数,所以和第一次字符类型相同的就少计数一次,因此结果也就少1了。不知道你有没有明白,那个scanf()在这里根本不需要的。呵呵
2013-10-31 19:17
依心木瓜
Rank: 2
等 级:论坛游民
帖 子:9
专家分:30
注 册:2013-1-9
收藏
得分:0 
回复 4楼 南国神画
楼上正解,学习了。
2013-10-31 19:43
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
回复 5楼 依心木瓜
呵呵,互相学习、、
2013-10-31 20:01
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
char x;    如果你输入是123
scanf("%c",&x);   此时:x=1.未计入数字个数.
   zm=kg=sz=qt=0;
    while((x=getchar())!='\n')  此时: x=2.才开始计入数字的个数
    {
    if(x>='a'&&x<='z'||x<='z'&&x>='a')
2013-11-01 21:27
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
收藏
得分:0 

。。。。。。。。。。。
2013-11-01 21:46
亢奋青年
Rank: 2
来 自:遵义市
等 级:论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
收藏
得分:0 
  注意   同意楼上

my time,my chips.
2013-11-02 12:15
快速回复:为什么我的答案总少了1???
数据加载中...
 
   



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

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