软件工程个人作业12
程序题目:
•三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
•如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
一、设计思想
根据“水王”发帖数目超过了帖子数目的一半,通过寻找发帖数过半的ID找出“水王”。
二、源代码:
1 package finding; 2 3 import java.util.InputMismatchException; 4 import java.util.Scanner; 5 6 public class finding { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 11 for(int m=0;;) //按照用户需求无限循环 12 { 13 int bug=0; 14 Scanner in=new Scanner(System.in); 15 int n; 16 System.out.println("请输入帖子的个数:"); 17 n=in.nextInt(); 18 19 System.out.println("请输入ID(为整数):"); 20 int ID[]=new int [n]; 21 try //捕捉输入错误 22 { 23 for(int i=0;i<n;i++) 24 { 25 ID[i]=in.nextInt(); 26 } 27 } 28 catch(InputMismatchException e) 29 { 30 System.out.println("输入不合法!请输入整数!"); 31 bug=1; 32 } 33 if(bug!=1) 34 { 35 int shuiwang=ID[0]; //从第一个ID开始,第一个即为水王 36 int temp=1; 37 for(int i=0;i<n-1;i++) 38 { 39 for(int j=i+1;j<n;j++) 40 { 41 if(shuiwang==ID[j]) //当此时水王与下一个ID相同时,计数器temp+1 42 { 43 temp++; 44 } 45 } 46 if(temp<=n/2) 47 { 48 shuiwang=ID[i+1]; //当temp小于总帖子数的一半时,换下一个ID为临时水王 49 } 50 } 51 System.out.println("水王是(发帖数超过总贴数一半的ID):"+shuiwang); 52 } 53 System.out.println("继续寻找水王请按n,退出请输入s:"); 54 String s=in.next(); 55 if(s.equals("s")) 56 System.exit(0); 57 else 58 continue; 59 in.close(); 60 } 61 } 62 }
三、截图