poj 2418 Hardwood Species (map)

题目:http://poj.org/problem?id=2418

在poj 上交题总是有各种错误,再次感叹各个编译器。

c++ AC代码,G++为超时,上代码:

 1 #include<cstdio>
 2  #include<string>
 3  #include<map>
 4  using namespace std;
 5  
 6  char s[100];
 7  int main()
 8  {
 9      map<string,int>mp;
10      map<string,int>::iterator iter;//声明迭代器
11      int sum=0;
12      while(gets(s)!=NULL)
13      {
14          mp[s]++;
15          sum++;
16      }
17      iter=mp.begin();  //相当于指针
18      while(iter!=mp.end())
19      {
20          printf("%s %.4f
",iter->first.c_str(),100.0*iter->second/sum); //.c_str() 是把字符串转换成能c能输出的
21          iter++;
22      }
23      return 0;
24  }
25  

这个代码是我第一次写的,不知道为什么 刚开始用了很多头文件,G++ wrong,  c++ 编译错误

现在是 改了头文件后的 AC代码

 1 #include<cstdio>
 2  #include<string>
 3  #include<iostream>
 4  #include<map>
 5  using namespace std;
 6  
 7  char s[100];
 8  int main()
 9  {
10      map<string,int>mp;
11      map<string,int>::iterator iter;
12      int i,sum=0;
13      while(gets(s)!=NULL)
14      {
15          mp[s]++;
16          sum++;
17      }
18      iter=mp.begin();
19      while(iter!=mp.end())
20      {
21          cout<<iter->first;
22          printf(" %.4lf
",100*1.0*iter->second/sum);
23          iter++;
24      }
25      return 0;
26  }
27  

吸取教训,以后 交c++,少用头文件

原文地址:https://www.cnblogs.com/bfshm/p/3277850.html