设计思路 :上次实验只要找出一个水王,因此计数器只有一个,本次实验目标为三个因此多定义两个长度为三的数组用来分装结果和对应的计数器,先令前三个id为要找的id,然后遍历若遇到相同的计数器就加一若一直不相同就减一。
源代码:
package kings; import java.util.Scanner; public class Searchking { public static void main(String[] args) { int i,j,num; int count[]={0,0,0}; String id[]=new String[100]; String king[]=new String[3]; Scanner sc=new Scanner(System.in); System.out.println("请输入帖子的总数"); num=sc.nextInt(); System.out.println("请输入id"); for(i=0;i<num;i++) { id[i]=sc.next(); } for(i=0;i<num;i++) { if(count[0]==0) { king[0]=id[i]; count[0]++; } else if(count[1]==0) { king[1]=id[i]; count[1]++; } else if(count[2]==0) { king[2]=id[i]; count[2]++; } else if(id[i]==king[0]) { count[0]++; } else if(id[i]==king[1]) { count[1]++; } else if(id[i]==king[1]) { count[2]++; } else { count[0]--; count[1]--; count[2]--; } } System.out.println("三个id分别为"+king[0]+" "+king[1]+" "+king[2]); } }
结果截图:
实验总结:再有简单的例子的基础上去解决更复杂的问题,可以适时的使用类比的方法