题目要求:
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
设计思路:
1、输入总帖子数n
2、定义map函数,map<a,b> a表示贴子ID,b表示该ID有多少贴子。
3、依次对map中的b赋值为0.
4、设置一个循环,依次对相同ID贴子计数,进行b++操作。
5、b/n与1/4进行比较,找出大于1/4的帖子,该贴子的ID就是小水王
源代码:
#include<iostream> #include<map> using namespace std; int main() { map<int,int> message; double IDNum[100]; //存放帖子ID double n; //帖子数量 cout<<"请输入帖子数量:"<<endl; cin>>n; cout<<"请输入帖子ID:"<<endl; for(int i=0;i<n;i++) { cin>>IDNum[i]; //输入帖子ID } for(int i=0;i<n;i++) { message[IDNum[i]]=0; //给每个帖子的个数符初值0 } for(int i=0;i<n;i++) { message[IDNum[i]]++; //帖子个数加1 } map<int,int>::const_iterator it; for (it =message.begin(); it !=message.end(); ++it) { if(((it->second)/n)>0.25) //判断帖子个数是否大于1/4 cout<<it->first<<"是小水王"<<endl; } return 0; }
截图:
心得体会:
本次实验是对水王的进一步探索,有三的小水王,通过对map函数的运用可以很快的找到水王,当然还有很多方法,可以通过数组设置循环进行比较也可以得到结果。