一、题目
三人行设计了一个灌水论坛。随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
二、设计思路
这次实验的思路与上一次的思路类似,通过“消消乐”的方式解决问题,不过这次水王的数量增加到了三个,所以比较的数量也会有所增加,而且要设置相应的变量来记录比较的过程。
三、源代码
#include<iostream.h> void Data(int l,int A[]); int main() { int l;//长度 int target[3]={0,0,0}; int ID[3]={-1,-1,-1}; cout<<"*********************************************************"<<endl; cout<<"请输入的帖子数量:"; cin>>l; cout<<"*********************************************************"<<endl; int * shuiwang=new int [l]; Data(l,shuiwang); for(int i=0;i<l;i++) { if(target[0]==0 && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2]) { target[0]=1; ID[0]=shuiwang[i]; } else if(target[1]==0 && shuiwang[i]!=ID[0] && shuiwang[i]!=ID[2]) { target[1]=1; ID[1]=shuiwang[i]; } else if(target[2]==0 && shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1]) { target[2]=1; ID[2]=shuiwang[i]; } else if(shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2]) { target[0]--; target[1]--; target[2]--; } else if(shuiwang[i]==ID[0]) { target[0]++; } else if(shuiwang[i]==ID[1]) { target[1]++; } else if(shuiwang[i]==ID[2]) { target[2]++; } } cout<<"*********************************************************"<<endl; cout<<"水王一为:"<<ID[0]<<endl; cout<<"水王二为:"<<ID[1]<<endl; cout<<"水王三为:"<<ID[2]<<endl; cout<<"*********************************************************"<<endl; return 0; } void Data(int l,int A[]) { cout<<"请输入ID序列:"<<endl; for(int i=0;i<l;i++) { cin>>A[i]; } }
四、实验截图
五、实验总结
这次的实验比较前一次又有了新一步的提高,在全局范围内找出多个而不是一个人。增加了难度,在原来的基础之上,进行了深入。其实思想还是大同小异,只是有一个弯儿,一开始怎么也想不出来。这次实验同学对我的帮助很大,我也是在借鉴的基础上完成的这个实验。
时间: 2024-10-13 18:50:18