题目:http://poj.org/problem?id=2418
在poj 上交题总是有各种错误,再次感叹各个编译器。
c++ AC代码,G++为超时,上代码:
#include<cstdio>
#include<string>
#include<map>
using namespace std; char s[];
int main()
{
map<string,int>mp;
map<string,int>::iterator iter;//声明迭代器
int sum=;
while(gets(s)!=NULL)
{
mp[s]++;
sum++;
}
iter=mp.begin(); //相当于指针
while(iter!=mp.end())
{
printf("%s %.4f\n",iter->first.c_str(),100.0*iter->second/sum); //.c_str() 是把字符串转换成能c能输出的
iter++;
}
return ;
}
这个代码是我第一次写的,不知道为什么 刚开始用了很多头文件,G++ wrong, c++ 编译错误
现在是 改了头文件后的 AC代码
#include<cstdio>
#include<string>
#include<iostream>
#include<map>
using namespace std; char s[];
int main()
{
map<string,int>mp;
map<string,int>::iterator iter;
int i,sum=;
while(gets(s)!=NULL)
{
mp[s]++;
sum++;
}
iter=mp.begin();
while(iter!=mp.end())
{
cout<<iter->first;
printf(" %.4lf\n",*1.0*iter->second/sum);
iter++;
}
return ;
}
吸取教训,以后 交c++,少用头文件