贴题:
正确代码:
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNext()) {
int n = cin.nextInt();
if(n==0){break;}
n++;
String[] a = new String[n];
String[] b = new String[n];
int[] c = new int[n];
int max = 1;
int end = 1;
for (int i = 0; i < n; i++) {
a[i] = cin.nextLine();
b[i] = a[i];
}
for (int j = 0; j < n; j++) {
for (int i = j; i < n; i++) {
if (b[j].equals(a[i])) {
c[j]++;
}
}
if (c[j] > max) {
max = c[j];
end = j;
}
}
System.out.println(a[end]);
}
}
}
原答案链接:https://blog.csdn.net/bruce_suxin/article/details/52863323
我的代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
String []a=new String[1000];
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
if (n==0){
break;
}
else{
for (int i=0;i<n;i++){
a[i]=sc.nextLine();
}
}
int []count=new int[1000];
for(int i=0;i<n;i++){
String c=a[i];
count[i]=1;
for (int j=1;j<n-1;j++){
String d=a[j];
if(c.equals(d)){
count[i]++;
}
}
}
int max=1;
for (int i=0;i<n;i++){
if(max<count[i]){
max=count[i];
}
}
}
}
}
可运行,但是会抛出异常:
捕获异常后,即使输入数字,也会重复提示输入数字:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
String[] a = new String[1000];
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
//int n=sc.nextInt();
while (true) {//设置一个死循环
try {
// acceptPrint();//当输入正确数据后,执行break语句,跳出循环
System.out.println("请输入一个整数:");
int n = sc.nextInt();
if (n == 0) {
break;
} else {
for (int i = 0; i < n; i++) {
a[i] = sc.nextLine();
}
}
int[] count = new int[1000];
for (int i = 0; i < n; i++) {
String c = a[i];
count[i] = 1;
for (int j = 1; j < n - 1; j++) {
String d = a[j];
if (c.equals(d)) {
count[i]++;
}
}
}
int max = 1;
for (int i = 0; i < n; i++) {
if (max < count[i]) {
max = count[i];
}
}
// System.out.println(n);
break;
} catch (Exception e) {
sc = new Scanner(System.in);
}
}
}
}
}
有知道原因的小伙伴请不吝赐教