| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1747 人关注过本帖
标题:%s输入字符串,统计数字个数,哪里有错怎么改?
只看楼主 加入收藏
MuMuLee
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2016-1-16
结帖率:84.21%
收藏
已结贴  问题点数:20 回复次数:8 
%s输入字符串,统计数字个数,哪里有错怎么改?
description
对与一个字符串我们想知道这个字符串里面有多少个数字,该怎么办呢?例如:对于字符串adsdfd454dfg456fgf,一共6个数字,Now,it's your turn to solve!

input
输入数据有多组,每组一行,代表输入的字符串,保证输入的字符串中没有空格,用%s输入(字符串长度不超过100)

output
输出占一行,代表字符串中数字的个数,输出后换行。

sample_input
adsdfd454dfg456fgf

sample_output
6



以下是我的程序:
#include <stdio.h>
#include <stdlib.h>

int main()
{
  char a[100];
    while(scanf("%c",&a[0])!=EOF)
    {

        int i,s=0;
        scanf("%s",a);
        for(i=0;i<100;i++)
        {
            if(a[i]>='0'&&a[i]<='9')
                s++;
        }
        printf("%d",s);

    }
    return 0;
}


哪里有问题?

 char a[100];
    while(scanf("%s",a)!=EOF)
    {
   
    }
我把最前面这样改了之后还是不对的



搜索更多相关主题的帖子: include 字符串 统计 
2016-02-18 09:30
foxeer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
收藏
得分:2 
楼主,你是不是想输入一组字符串,然后找到其中的数字,并计算有多少个数字字符
2016-02-18 09:46
foxeer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
收藏
得分:6 
#define _STDC_WANT_LIB_EXT1_1
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char number[100] = {0};
    int count = 0;
    printf("please enter the string.\n");
    scanf_s("%s",number,100);
    for (size_t i = 0;i < strlen(number);++i)
    {
        if (number[i] >= '0'&&number[i] <= '9')
            count++;
    }
    printf(" number is %d\n",count);
    return 0;
}

如果就是计算数字个数,这个应该能解决问题
2016-02-18 10:01
foxeer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
收藏
得分:2 
sorry,忘了打个头文件#include <string.h>
2016-02-18 10:05
MuMuLee
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2016-1-16
收藏
得分:0 
回复 4楼 foxeer
怎么体现多组数据?


还有,,,我的程序哪里有问题?
2016-02-18 10:17
蓝色风暴cl
Rank: 8Rank: 8
来 自:新疆
等 级:蝙蝠侠
威 望:3
帖 子:163
专家分:704
注 册:2015-9-6
收藏
得分:5 
我用你的感觉没错啊??

欢迎大家加好友哦,多找我聊聊吧!
2016-02-18 10:52
MuMuLee
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2016-1-16
收藏
得分:0 
回复 6楼 蓝色风暴cl
嗯嗯 我在编译器里可以运行 结果也对

学校ACM网站上提交就是wrong answe
2016-02-18 10:53
MuMuLee
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2016-1-16
收藏
得分:0 
回复 2楼 foxeer
对的
 
输入多组数据
2016-02-18 10:54
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:5 
首先a[100]就不对,应该是a[101],看题目要求“字符串长度不超过100”
其次scanf("%c",&a[0])岂不是吃掉了第一个字符,你输入123试试,你的输出是错误的2
!=EOF 这不多说了
对于算法,for(i=0;i<100;i++),假如对方没有输入100个字符,你岂不是连\0之后的字符也统计进来了

我随便写两段,仅供参考,不保证正确
程序代码:
#include <stdio.h>

int main( void )
{
    for( char s[101]; scanf("%s",s)==1; )
    {
        unsigned num = 0;
        for( const char* p=s; *p; ++p )
            num += (*p>='0' && *p<='9');
        printf( "%u\n", num );
    }
    return 0;
}

程序代码:
#include <stdio.h>

int main( void )
{
    for( int c, n=0; c=getchar(), c!=EOF; )
    {
        if( c == '\n' )
            printf( "%d\n", n ), n = 0;
        else
            n += (c>='0' && c<='9');       
    }
    return 0;
}

2016-02-18 11:12
快速回复:%s输入字符串,统计数字个数,哪里有错怎么改?
数据加载中...
 
   



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

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