您的位置:首页 > 其它

找水王

2015-06-22 15:23 267 查看
(1)设计思想
水王的帖子超过一半,在一次遍历的时候进行计数,初始值n=0;从第一个开始用m记录下ID,如果相邻两个ID一样,n就加一,m不变,如果不一样,n就减一,m不变,直到当n小于0的时候,让m为第二个ID,n=0。最后n>0,m表示的ID就是水王。

(2)源代码:

#include"iostream"
using namespace std;
void Data(int l,int A[]);
int main()
{
int l;//长度
int target[3]={0,0,0};
int ID[3]={-1,-1,-1};
cout<<"请输入帖子数量:";
cin>>l;
int * shuitong=new int [l];
Data(l,shuitong);
for(int i=0;i<l;i++)
{

if(target[0]==0 && shuitong[i]!=ID[1] && shuitong[i]!=ID[2])
{
target[0]=1;
ID[0]=shuitong[i];
}
else if(target[1]==0 && shuitong[i]!=ID[0] && shuitong[i]!=ID[2])
{
target[1]=1;
ID[1]=shuitong[i];
}
else if(target[2]==0 && shuitong[i]!=ID[0] && shuitong[i]!=ID[1])
{
target[2]=1;
ID[2]=shuitong[i];
}

else if(shuitong[i]!=ID[0] && shuitong[i]!=ID[1] && shuitong[i]!=ID[2])
{
target[0]--;
target[1]--;
target[2]--;
}
else if(shuitong[i]==ID[0])
{
target[0]++;
}
else if(shuitong[i]==ID[1])
{
target[1]++;
}
else if(shuitong[i]==ID[2])
{
target[2]++;
}

}
cout<<"水王为:"<<ID[0]<<endl;
cout<<"水王为:"<<ID[1]<<endl;
cout<<"水王为:"<<ID[2]<<endl;
return 0;
}
void Data(int l,int A[])

{

cout<<"请输入符合条件的ID列表:"<<endl;

for(int i=0;i<l;i++)

{

cin>>A[i];

}

}


四、实验截图:



五、实验总结

其实这道题就如同消消乐一样,就是消掉几个的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: