| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3512 人关注过本帖
标题:从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十进制 ...
只看楼主 加入收藏
yuanye2416
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2012-9-27
结帖率:92.31%
收藏
已结贴  问题点数:2 回复次数:11 
从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十进制数字的个数并输出。 怎么编啊
从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十进制数字的个数并输出。

就是比如键盘输入 2 4 2 4 3 4 3
统计出2出现2次,4出现3次,3出现2次。,怎么编啊




搜索更多相关主题的帖子: 字符串 十进制 
2012-10-22 15:02
Edwardwang03
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:45
专家分:32
注 册:2012-9-18
收藏
得分:0 
这个就是把字符串中的数字提取出来了,首先输入的气候必须每个数字之间有间隔标志比如#然后从头扫描,扫描到数字就记录,扫描到#就代表一个数结束,你只要给对应的计数器累加就可以算出每个数的数量了
2012-10-22 15:29
yuanye2416
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2012-9-27
收藏
得分:0 
回复 2楼 Edwardwang03
具体过程怎么写?
2012-10-22 15:41
whibla
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-8-1
收藏
得分:0 
#include<stdio.h>
#include<string.h>
int main()
{
    char s[55];
    int n,i,k,j;
    while( scanf( "%s",s ) != EOF )
    {
        int count[11] = {0};
        n = strlen( s );
        k = 0;
        for( i = 0; i <= 9; i++ )
        {
            for( j = 0; j < n; j++ )
            {
                if( s[j] - '0' == k )
                    count[i]++;
            }
            k++;
        }
        for( i = 0; i <= 9; i++ )
            printf( "the counts of %d is: %d\n",i,count[i] );
    }
    return 0;
}
2012-10-22 16:30
whibla
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-8-1
收藏
得分:0 
#include<stdio.h>
#include<string.h>
int main()
{
    char s[55];
    int n,i,k,j;
    while( scanf( "%s",s ) != EOF )
    {
        int count[11] = {0};
        n = strlen( s );
        k = 0;
        for( i = 0; i <= 9; i++ )
        {
            for( j = 0; j < n; j++ )
            {
                if( s[j] - '0' == k )
                    count[i]++;
            }
            k++;
        }
        for( i = 0; i <= 9; i++ )
            printf( "the counts of %d is: %d\n",i,count[i] );
    }
    return 0;
}
2012-10-22 16:31
hgand
Rank: 2
等 级:论坛游民
帖 子:32
专家分:77
注 册:2012-10-17
收藏
得分:0 
顶顶顶.
2012-10-22 17:52
nicezhangfan
Rank: 2
等 级:论坛游民
帖 子:23
专家分:10
注 册:2012-9-27
收藏
得分:0 
程序代码:
/*
  题目:从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十进制数字的个数并输出 
*/

#include <stdio.h>

void main(int argc, char *argv[])
{
    char input[51];//用来存储输入的数字字符串
    printf("请输入您需要统计的字符串:\n");
    scanf("%s",input);
    
    /*录入需要统计的字符串*/
    
    int i=0;//控制循环次数
    int num[10]={0,0,0,0,0,0,0,0,0,0};//存储每个数字字符出现的次数
    int numChar;//存储出现的字符 
    
    while(input[i]!='\0')//控制循环的结束:当出现空字符的时候结束 
    {
        numChar=input[i]-48;//得到出现的字符 
        num[numChar]++; 
        i++;
    }
    /*得到我们出现的次数存储在num数组中*/
     
    for(i=0;i<10;i++)
    {
        printf("%d出现的次数为:%d\n",i,num[i]);
    }
    /*按照格式输出结果*/
}


初学写的!!仅供参考!
2012-10-22 17:59
jueshidouzi
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2011-10-5
收藏
得分:0 
拿一个数组,10个元素,用来存放每个数字出现的次数。然后扫描你输入的字符串,如果是数字,就相应的加1.
程序代码:
/******************

 *count:    这个函数就是用来达到你那个目的

 *@__numbers:    这个就是你说的输入的那一串字符

 *@__count:    这是一个指针,其实就是一个地址,你调用时定义一个数组(你打算用来存放计数结果),把这数组的地址传过来。

 *@__count_len:你那个数组多长啊,应该是10个吧,每个元素用来存放出现次数

 *************************************/
void count(const char *__numbers, int *__count, int __count_len)
{
       /*这是一个标准c库函数,用来清空buffer*/
      memset(__count, 0, __count_len);

       while(*__numbers){
           /*判断这个字符是不是数字,是的话就在记录这个数字出现次数的地方加1,同时指针指向下一个要检测的字符*/
           if(isdigit(*__numbers))
               __count[*__numbers - '0']++;
           __numbers++;
           
       }
      
}
2012-10-23 18:11
jueshidouzi
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2011-10-5
收藏
得分:0 
你的这些问题都是比较基础的,都不难,多看看书就行了。c语言这东西没传说的那么难。K & R 这本书很好,才200页,那么薄,看完这本,基本就不用看别的c语言相关的书了。前提是,把这本书吃透。花个3月来研究这本书,其他的书都放一放,看完了,上面的程序会写了,你就能体会到我这些话了。接下来推荐的书有,c和指针什么的,其实不看也没事,那一本已足够。学c呢,最好的环境是linux。看看apue吧。
2012-10-23 18:20
jueshidouzi
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2011-10-5
收藏
得分:0 
忘了说了,会了c,如果数学好,你就特容易成为高手,否则,看再多编程书也是白搭。多花时间研究数学和数据结构
2012-10-23 18:22
快速回复:从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十 ...
数据加载中...
 
   



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

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