| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 414 人关注过本帖
标题:这个问题出现在哪呢
只看楼主 加入收藏
qq23826868
Rank: 2
等 级:论坛游民
帖 子:57
专家分:94
注 册:2013-4-7
结帖率:85.71%
收藏
 问题点数:0 回复次数:3 
这个问题出现在哪呢
程序代码:
#include "stdio.h"
void main()
{
    char c;
    int a,b,m,l;
    a=0,b=0,m=0,l=0;
    printf("输入一行字符:\n");
    getchar(c);
    while((c=getchar())!='\n')
    {if(c>=65&&c<=90||c>=97&&c<=122)a++;
    else if(c>=48&&c<=57)b++;
    else if(c==32)m++;
    else l++;}
    printf("%d   %d   %d  %d",a,b,m,l);
   


}

编译出来的时候,字母总会少一个。。 

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

2013-04-25 00:27
为你而变
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2013-4-25
收藏
得分:0 
#include <stdio.h>
int main(void)
{
    char ch;
    int a,b,m,l;
    a=0,b=0,m=0,l=0;
    printf("输入一行字符:n");
   //
    while((ch=getchar())!='n')
    { if(ch>='1'&&ch<='9')b++;
   
    else if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')a++;
    else if(ch==' ')m++;
    else l++;}
    printf("字母=%d   数字=%d   空格=%d  其他=%d",a,b,m,l);
   return 0;
}      不要在while语句之前使用ch=getchar();如果使用的话,第一个ch就没有带入到while中!!
2013-04-25 10:26
qq23826868
Rank: 2
等 级:论坛游民
帖 子:57
专家分:94
注 册:2013-4-7
收藏
得分:0 
回复 2楼 为你而变
为什么呢,,,这个是什么原因
2013-04-25 11:12
惊叹者
Rank: 1
等 级:新手上路
帖 子:38
专家分:5
注 册:2013-3-5
收藏
得分:0 
程序代码:
#include "stdio.h"
void main()
{
    char c;
    int a,b,m,l;
    a=0,b=0,m=0,l=0;
    printf("输入一行字符:\n");
    /这里的getchar(c);被下面的循环语句覆盖,所以少了一个字符
    while((c=getchar())!='\n')
    {if(c>=65&&c<=90||c>=97&&c<=122)a++;
    else if(c>=48&&c<=57)b++;
    else if(c==32)m++;
    else l++;}
    printf("%d   %d   %d  %d",a,b,m,l);
   


}
2013-04-25 11:27
快速回复:这个问题出现在哪呢
数据加载中...
 
   



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

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