注册 登录
编程论坛 C++教室

新手额....c问题

dyq1991 发布于 2011-02-25 21:24, 448 次点击
#include<stdio.h>
void main()
{
    char c;
    int zimu=0,shuzi=0,kongge=0,other=0;
    printf("输入字符:\n");
 ......  c=getchar();.................  *****
    while((c=getchar())!='\n')
    {
    if(c>='a'&&c<='z'||c>='A'&&c<='Z')
        zimu++;
    else if(c==' ')
        kongge++;
    else if(c>='0'&&c<='9')
        shuzi++;
    else
        other++;
    }
    printf("zimu=%d,shuzi=%d,kongge=%d,other=%d\n",zimu,shuzi,kongge,other);
}
为什么加了 **** 语句后  统计时 字母少一个啊??、
5 回复
#2
qq10235692232011-02-26 08:03
很简单,你输入的第一个字符被 c=getchar(); *****接收了,而却不在你的统计范围内,去掉这句就好了。
#3
chan922011-02-26 10:42
#include "stdafx.h"
#include<stdio.h>
void main()
{
    char c[80];
    int zimu=0,shuzi=0,kongge=0,other=0,i;
    printf("输入字符:\n");
    i=0;
    while((c[i]=getchar())!='\n')
        i++;
    c[i]='\0';
    for(i=0;c[i]!='\0';i++)
    {
    if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z')
        zimu++;
    else if(c[i]==' ')
        kongge++;
    else if(c[i]>='0'&&c[i]<='9')
        shuzi++;
    else
        other++;
    }
    printf("zimu=%d,shuzi=%d,kongge=%d,other=%d\n",zimu,shuzi,kongge,other);
}
定义一个字符串数组。你那个编译有错误
#4
yidongnan2011-02-27 08:37
#include<stdio.h>
void main()
{
    char c;
    int zimu=0,shuzi=0,kongge=0,other=0;
    printf("输入字符:\n");
    while((c=getchar())!='\n')
    {
    if(c>='a'&&c<='z'||c>='A'&&c<='Z')
    zimu++;
    else if(c==' ')
    kongge++;
    else if(c>='0'&&c<='9')
    shuzi++;
    else
    other++;
    }
    printf("zimu=%d,shuzi=%d,kongge=%d,other=%d\n",zimu,shuzi,kongge,other);
}
#5
pangding2011-02-27 22:05
我觉得 2楼 就是正解。而且难道楼主不觉得 你先自己读了一个,之后统计就少了一个 这件事不是巧合吗……
#6
dyq19912011-03-05 21:59
谢谢各位了!!!
1