以下是引用jervie1217在2008-11-23 17:27:00的发言:
数据形式如下图
公司 股东1 股东2 股东3 股东4
001 a . b
002 c . . .
003 a b . .
004 . . c d
想要计算有多少个股东,每个股东出现了几次?
请大侠帮忙,小弟搞了一个下午没弄出来。
搞出来才是王道!你把数据全复制到一个 123.txt 文件里面 放到一个工程同目录下 下面程序测试过 肯定对
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <assert.h>
#include <fstream>
using namespace std;
struct Pair
{
string name;
double val;
};
vector<Pair> pairs;
double& value(const string& s)
{
for(int i=0;i<pairs.size();i++)
if(s==pairs.name)
return pairs.val;
Pair p;
p.name=s;
p.val=0;
pairs.push_back(p);
return pairs[pairs.size()-1].val;
}
int main()
{
string buf;
ifstream ifile( "123.txt" );
while (ifile>>buf)
value(buf)++;
for(vector<Pair>::const_iterator p=pairs.begin();p!=pairs.end();++p)
cout<<p->name<<":"<<p->val<<'\n';
return 0;
}