| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 642 人关注过本帖
标题:c++题目,求大神解答,解释一下。
只看楼主 加入收藏
风雨123
Rank: 2
等 级:论坛游民
帖 子:84
专家分:65
注 册:2013-2-23
结帖率:66.67%
收藏
已结贴  问题点数:5 回复次数:12 
c++题目,求大神解答,解释一下。
统计每个字母的个数
  输入一行字母,统计每个字母的个数,并输出字母及相应个数,
 字母和数字用一个空格隔开。
例如:
标准输入:
abf aaa bf
标准输出:
a 4 b 2 f 2
搜索更多相关主题的帖子: 字母 统计 
2013-02-26 17:00
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
额,介个,代码呢?


[fly]存在即是合理[/fly]
2013-02-26 17:07
风雨123
Rank: 2
等 级:论坛游民
帖 子:84
专家分:65
注 册:2013-2-23
收藏
得分:0 
帮我讲一下思路,一些代码
2013-02-26 17:16
风雨123
Rank: 2
等 级:论坛游民
帖 子:84
专家分:65
注 册:2013-2-23
收藏
得分:0 
#include <iostream>
#include <string>
using namespace std;
int main()
{
  char s[80];
  int i,n,m=0,k;
  cin.getline(s,80);
  n=strlen(s);
  for(i=0;i<n;i++)
  {
      for(k=i+1;k<n;k++)
      {
          if(i==k)continue;
          else if(s[i]==s[k])
             m++;
      }
      if(i==0)
      cout<<s[i]<<" "<<m;
      else if(i>0)
          cout<<" "<<s[i]<<" "<<m;
      m=0;
  }
  cout<<endl;
  return 0;
}
这是错的。
2013-02-26 17:19
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
。。。。

仰望星空...........不忘初心!
2013-02-26 17:27
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
表示看不懂你的内循环,i<k恒成立的吧

我的思路就是加一个result数组,result[0]表示 ‘a’的个数......

先将result数组置0,然后 result[ s[i] - 'a' ]++ 就可以,最后遍历result数组,非 0就输出


[fly]存在即是合理[/fly]
2013-02-26 17:33
songjie333
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2013-2-26
收藏
得分:1 
程序代码:
#include "stdafx.h"
#include
#include
#include
#include
using std::string;
using std::cin;
using std::cout;
using std::endl;
int _tmain(int argc, _TCHAR* argv[])
{
    string s;
    //cin>>s;
    getline(cin,s);
    int len=s.length();
    if(!s.empty())
    {
       int count[100];
       for(int i=0;i<=len-1;i++)
           count[i]=1;
       for(int j=1;j<=len-1;j++)
       {       for(int i=0;i<J;I++)
                 if(s[j]==s[i])
                   {  count[i]++;
                      count[j]--;
                        break;}
        }
     for(int i=0;i<LEN;I++)
     if(count[i]>0&&isalpha(s[i]))
         cout<<S[I]<<" "<<COUNT[I]<<ENDL;
     }
    system("pause");
    return 0;
}
ok了
2013-02-26 19:27
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:4 
程序代码:
#include <stdio.h>
#include <string.h>

int main()
{
    char s[80];
    int i = 0, len, result[26] = {0};
    for (gets(s), len = strlen(s); i < len; ++i)
    {
        ++result[ s[i] - 'a' ];
    }
    for    (i = 0; i < 26; ++i)
    {
        if (result[i])
            printf("%c %d ", i + 'a', result[i]);
    }
    puts("");
    return 0;
}


代码问题较多,理解下思路就好

[ 本帖最后由 azzbcc 于 2013-2-26 23:03 编辑 ]


[fly]存在即是合理[/fly]
2013-02-26 21:36
额外覆盖
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:城市猎人
威 望:6
帖 子:1726
专家分:5757
注 册:2012-9-22
收藏
得分:0 
我就不多嘴了,楼上的算法挺好的,学习了

我现在所学的一切都是为了游戏!!!为了游戏,加油!加油!努力!
2013-02-26 22:28
sam031
Rank: 2
等 级:论坛游民
帖 子:12
专家分:14
注 册:2013-2-23
收藏
得分:0 
楼上这哥们。。。
这个是C哦
都是高手
2013-02-26 22:31
快速回复:c++题目,求大神解答,解释一下。
数据加载中...
 
   



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

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