| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1309 人关注过本帖
标题:C语言的一道题目,大家看看啊。我的代码错在哪了?
只看楼主 加入收藏
songp172007
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-12
收藏
 问题点数:0 回复次数:10 
C语言的一道题目,大家看看啊。我的代码错在哪了?
从键盘输入一行字符(长度不大于80,允许包含大小写字母、数字、空格,可能还有其它字符),统计字母个数、数字个数、空格个数,输出结果。
高手们看看我的代码哪里错了???
我写的代码:
#include "stdio.h"
#define N 80
void main()
{
    char A[N];
    int i,j;
    int m,n,p;
    printf(" 请输入字符:\n");
    for(i=0;i<N;i++)
        scanf("%s",&A[i]);
    for(i=0;i<N;i++)
    {
        if('0'<A[i]<'9'||A[i]=='0'||A[i]=='9')
            n++;
        if('A'<A[i]<'Z'||'a'<A[i]<'z')
            m++;
        if(A[i]==' ')
            p++;
    }
    printf("数字的个数为:%d个\n",n);
    printf("大小写字母的个数为:%d个\n",m);
    printf("空格的个数为:%d个\n",p);
}
搜索更多相关主题的帖子: C语言 代码 
2008-11-22 00:05
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
施主,你这么形容一个数值在C语言中是不对滴
for(i=0;i<N;i++)
    {
        if('0'<A[i]<'9'||A[i]=='0'||A[i]=='9')
    /* 这段改为:(A[i]>='0'&&A[i]<='9') */
            n++;
        if('A'<A[i]<'Z'||'a'<A[i]<'z')  
    /* 这段改为:(A[i]>='A'&&A[i]<='Z'||A[i]>='a'&&A[i]<='z') */      
          m++;
        if(A[i]==' ')
            p++;
    }

输入也有问题,改为:printf(" 请输入字符:\n");
                    for(i=0;i<N;i++)
                        scanf("%c",A[i]);

[[it] 本帖最后由 广陵绝唱 于 2008-11-22 00:34 编辑 [/it]]
2008-11-22 00:10
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
算了,把你的程序改了一下,你试试这回运行一下吧。
程序代码:
#include <stdio.h>
#include<string.h>
#define N 80
void main()
{
    char A[N];
    int i,j;
    int m,n,p,k;
    printf(" 请输入字符:\n");
    gets(A);
    k=strlen(A);
    for(i=0;i<k;i++)
    {
        if(A[i]>='0'&&A[i]<='9')
            n++;
        if(A[i]>='a'&&A[i]<='z'||A[i]>='A'&&A[i]<='Z')
            m++;
        if(A[i]==' ')
            p++;
    }
    printf("数字的个数为:%d个\n",n);
    printf("大小写字母的个数为:%d个\n",m);
    printf("空格的个数为:%d个\n",p);
}
2008-11-22 00:38
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
126 个匹配,共 19 行
8 个匹配,共 4 行
121 个匹配,共 21 行

对你程序的分析结果。命令为:
%s/\a//gn|%s/\d//gn|%s/ //gn

结论:用合适的工具,做合适的事情……
2008-11-22 00:55
songp172007
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-12
收藏
得分:0 
谢谢啊~~~
2008-11-22 10:46
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
我认为楼主的设计不是很好,输入80个字符啊!!80个!!

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 11:13
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
其实统计这种事情,交给awk或者sed或者Vim或者perl或者Ruby做就很好了……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-11-22 15:46
sqjz38
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-23
收藏
得分:0 
对字符串输入时,个人喜欢用gets语句,再用strlen函数,挺好
2008-11-23 14:35
sqjz38
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-23
收藏
得分:0 
另外再补充点,m,n,p的初值要设为零,否则输出的结果可能是错的,但计算机在编译时不会认为是错的。有不对之处请各位高人大哥大姐指教,小弟也是初学者~
2008-11-23 14:41
a138056
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-23
收藏
得分:0 
在用scanf时,注意输入格式,A[N]是字符数组,格式为"%c",另外,在运行程序时,要注意用scanf输入时,回车符也是一个输入字符
2008-11-23 19:32
快速回复:C语言的一道题目,大家看看啊。我的代码错在哪了?
数据加载中...
 
   



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

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