求高手帮忙解释一下啊....

寒影 2012-05-07 11:37:32
package lianxi;

import java.util.Scanner;

public class abc {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int n,k;
int xx[] = new int[20];
int i, j, t;
System.out.print("\nPlease enter a number:");
Scanner in = new Scanner(System.in);
n = in.nextInt();
System.out.print("\nPlease enter numbers:");
for (i = 0; i < n; i++) {
xx[i] = in.nextInt();//我分布调试时发现这个循环有问题啊
}
System.out.print("\nPlease enter another number:");
k = in.nextInt();
for (i = 0; i < k; i++) {
t = xx[0];
for (j = 1; j < n; j++){
xx[j - 1] = xx[j];
xx[1] = t;
}
}
System.out.print("\nAfter moving:\n");
for (i = 0; i < n; i++){
System.out.print("\n" + xx[i]);
}
}
}
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shangyangi 2012-05-08
  • 打赏
  • 举报
回复
路过关注与一下……
寒影 2012-05-08
  • 打赏
  • 举报
回复
改了之后还是老问题啊,第一步我输入了7,第二步我输入123456,结果一直回车都不见下面的语句运行了..
用分布调试时停在了这里: xx[i] = in.nextInt();
bj1031236 2012-05-08
  • 打赏
  • 举报
回复
你试一下这样:
package lianxi;

import java.util.Scanner;

public class abc {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int n,k;
int i, j, t;
System.out.print("\nPlease enter a number:");
Scanner in = new Scanner(System.in);
n = in.nextInt();
int xx[] = new int[n];
System.out.print("\nPlease enter numbers:");
for (i = 0; i < n; i++) {
System.out.println("请输入第 "+(i+1)+" 个数:");
xx[i] = in.nextInt();//我分布调试时发现这个循环有问题啊
}
System.out.print("\nPlease enter another number:");
k = in.nextInt();
for (i = 0; i < k; i++) {
t = xx[0];
for (j = 1; j < n; j++){
xx[j - 1] = xx[j];
xx[1] = t;
}
}
System.out.print("\nAfter moving:\n");
for (i = 0; i < n; i++){
System.out.print("\n" + xx[i]);
}
}
}


这样应该可以解决你那个问题
bj1031236 2012-05-08
  • 打赏
  • 举报
回复
int xx[] = new int[20]; 数组在内存中分配的空间是 20

n = in.nextInt();
for (i = 0; i < n; i++) {
xx[i] = in.nextInt();
}
n 接收输入赋值,要是输入的 n 大于20,你的 xx[] 数组下标就会超出内存空间,会出现一个异常,但是我忘记是什么异常了。
要是你想改,就:
把:int xx[] = new int[20];放在:n = in.nextInt();的后面,并把20改成 n 。
应该是这样!
leandzgc 2012-05-08
  • 打赏
  • 举报
回复
我感觉你的xx数组可以在他输入了n以后创建啊。这样不就没事了?
package lianxi;

import java.util.Scanner;

public class abc {

int n,k;
int i, j, t;
System.out.print("\nPlease enter a number:");
Scanner in = new Scanner(System.in);
n = in.nextInt();
int xx[] = new int[n];
System.out.print("\nPlease enter numbers:");
for (i = 0; i < n; i++) {
xx[i] = in.nextInt();//我分布调试时发现这个循环有问题啊
}

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧