标签:
一、题目要求
#include<iostream> #include<assert.h> using namespace std; int * search(int *userId,int n) { int curId[3]={0};//当前保存的三个不同ID int curNum[3]={0};//当前三个不同ID各自的数目; for(int i=0;i<n;i++) { if(curNum[0]==0&&userId[i]!=curId[1]&&userId[i]!=curId[2])//用户ID在当前ID中不存在相同ID且userID[0]的当前数量为0; { curNum[0]=1; curId[0]=userId[i]; } else if(curNum[1]==0&&userId[i]!=curId[0]&&userId[i]!=curId[2]) { curNum[1]=1; curId[1]=userId[i]; } else if(curNum[2]==0&&userId[i]!=curId[0]&&userId[i]!=curId[1]) { curNum[2]=1; curId[2]=userId[i]; } else if(userId[i]==curId[0])//用户ID和当前ID相同则当前ID数+1 { curNum[0]++; } else if(userId[i]==curId[1]) { curNum[1]++; } else if(userId[i]==curId[2]) { curNum[2]++; } else if(userId[i]!=curId[0]&&userId[i]!=curId[1]&&userId[i]!=curId[2])//四种ID一起抵消 { curNum[0]--; curNum[1]--; curNum[2]--; } } return curId;//返回当前剩余的三个ID即为三个水王 } void main() { int n; int * userId; int curId[3]={0}; int curNum[3]={0}; int i; cout<<"输入灌水帖子数:"; cin>>n; assert(n>0); userId=new int[n]; cout<<"输入每一条灌水帖子id:"<<endl; for(i=0;i<n;i++) { cin>>userId[i]; } for(i=0;i<3;i++)//输出三个水王ID { cout<<*search(userId,n)+i<<"\t"; } }
标签:
原文地址:http://www.cnblogs.com/huangxiaofei/p/4456387.html