一、题目要求
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
二、设计思路
本次题目是在上次寻找“水王”的基础上进行拓展,设计思路和上次的相似,本次的设计思想沿用上次的技巧,有三个水军变量,三个计数变量;分别使水军的这三个变量和下一个数比较,然后和三个水军相对应的计数变量分别进行计数,相同则加一,不同则抵消减一;依次循环,和水王的规则类似,最后找到3个水军
三、源代码
1 #include "stdio.h" 2 int main() 3 { 4 int arrID[15]={110,110,111,112,113,111,111,112,110,110,112,112,111,113,114}; 5 int shuijun1=0,shuijun2=0,shuijun3=0; 6 int x1=0,x2=0,x3=0; 7 int num=15; 8 for(int i=0;i<num;i++) 9 { 10 if(x1==0 && arrID[i]!=shuijun2 && arrID[i]!=shuijun3) 11 { 12 x1=1; 13 shuijun1=arrID[i]; 14 } 15 else if(x2==0 && arrID[i]!=shuijun1 && arrID[i]!=shuijun3) 16 { 17 x2=1; 18 shuijun2=arrID[i]; 19 } 20 else if(x3==0 && arrID[i]!=shuijun1 && arrID[i]!=shuijun2) 21 { 22 x3=1; 23 shuijun3=arrID[i]; 24 } 25 else if(arrID[i]!=shuijun1 && arrID[i]!=shuijun2 && arrID[i]!=shuijun3) 26 { 27 x1--; 28 x2--; 29 x3--; 30 } 31 else if(arrID[i]==shuijun1) 32 { 33 x1++; 34 } 35 else if(arrID[i]==shuijun2) 36 { 37 x2++; 38 } 39 else if(arrID[i]==shuijun3) 40 { 41 x3++; 42 } 43 } 44 printf("三个水军的ID分别是:%d、%d、%d\n",shuijun1,shuijun2,shuijun3); 45 return 0; 46 }
四、运行结果
五、心得体会
有了之前的实验,加上老师的点播,这次实验做得很顺利。