java,求大神帮忙运行一下看看哪里错啦
importjava.util.Scanner;classmain{publicstaticvoidmain(String[]args){Scannerinput=new...
import java.util.Scanner;
class main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int i;
for(i=0;i<n;i++){
Num num = new Num(input.next());
System.out.println(num.showresult()+" "+num.res());
}
}
}
class Num {
String a;
Num(String _a) {
a = _a;
}
char showresult() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; j < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return m;
}
int res() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; j < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return max;
}
} 展开
class main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int i;
for(i=0;i<n;i++){
Num num = new Num(input.next());
System.out.println(num.showresult()+" "+num.res());
}
}
}
class Num {
String a;
Num(String _a) {
a = _a;
}
char showresult() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; j < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return m;
}
int res() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; j < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return max;
}
} 展开
3个回答
2017-03-18
展开全部
首先 这里有个问题,在图中第47行,当数组c的长度大于0,在第48行代码不报错的情况下,这里会进入死循环,
因为j=0 进入循环并一直没变化,j永远小于c.length,所以进入死循环
你没有对循环变量进行处理,实际上应该是 i<c.length ,
因为你是用数组的第j个数与其他值对比,i自增达到遍历的作用
这里也是(图中第30行)
另外,在一个类里面没有public的类是可以成功编译的。
但是,如果说public的类名跟文件名不一致,这一定会报错;
做了一些小改动(只是输出提示)
import java.util.Scanner;
class main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("输入次数:");
int n = input.nextInt();
int i;
for (i = 0; i < n; i++) {
System.out.print("请输入第" + (i + 1) + "个数:");
Num num = new Num(input.next());
System.out.println("出现次数最多的:" + num.showresult() + " 出现了"
+ num.res() + "次");
}
}
}
class Num {
String a;
Num(String _a) {
a = _a;
}
char showresult() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; i < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return m;
}
int res() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; i < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return max;
}
}
展开全部
import java.util.Scanner;
public class main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int i;
for(i=0;i<n;i++){
Num num = new Num(input.next());
System.out.println(num.showresult()+" "+num.res());
}
}
}
class Num {
String a;
Num(String _a) {
a = _a;
}
char showresult() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; j < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return m;
}
int res() {
char[] c = a.toCharArray();
char m = c[0];
int i, j, max = 1, k;
for (j = 0; j < c.length; j++) {
k = 1;
for (i = j + 1; j < c.length; i++) {
if (c[j] == c[i])
k++;
}
if (k > max || (k == max && c[j] < m)) {
max = k;
m = c[j];
}
}
return max;
}
}
改为这样,另外你的类名要与public class xx这个类名字对应一致
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼下的厉害
但是第三行的m要大写
然后在第三行后面加一行
@SuppressWarnings("resource")
但是第三行的m要大写
然后在第三行后面加一行
@SuppressWarnings("resource")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询