JAVA数组的问题。正在JAVA入门中

来源:百度知道 编辑:UC知道 时间:2024/06/23 23:33:12
目的是:1---5号,从1号开始报数,报到3的人离开,一直到剩最后一个人。
我写的程序是:
public class lianxi{

public static void main(String arge[])
{
int size=5;
int aman[]=new int[size];
int i,j,number,syman=5,xman;
for(i=1;i==aman.length;i++)
{
aman[i]=i;
}
i=1;
while(syman!=1)
{
for(j=1;j<=5;j++)
{

if(i!=3)
i++;
else if(i==3&&aman[j]!=0)
{
aman[j]=0;
i=1;
syman--;
System.out.println("The number of "+aman[j]+" have died");
}
else {;}
}
}
for(i=1;i<=aman.length;i++)
{
if(aman[i]!=0)
System.out.println("The luckyman is : "+aman[i]+" !");
else {;}
}

}
}

是怎么报数啊,5个人1--5,第一遍第三个人离开,然后是第四个人开始报1还是从第一个人开始报1啊?

int size = 5;
int aman[] = new int[size];
int i, j, number, syman = 5, xman;
for (i = 0; i < aman.length; i++) {
aman[i] = i + 1;
}

i = 1;
while (syman != 1) {
for (j = 0; j < 5; j++) {
if (i != 3 && aman[j] != 0)
i++;
else if (i == 3 && aman[j] != 0) {
System.out.println("The number of " + aman[j]
+ " have died");
aman[j] = 0;
i = 1;
syman--;
}
}
}
for (i = 0; i < aman.length; i++) {
if (aman[i] != 0)
System.out.println("The luckyman is : " + aman[i] + " !");
}

}

对于这段代码实在不敢恭维,改都不好改,指出几点错误吧

1. 首先你对数组还不是很了解,数组的下标是从0开始的,你的代码中就出现了下标越界限

2. 你对 while 和for 循环使用有问题,造成了死循环

3. 本来很容易的题目,写法上太晦涩