我试着分析一下:
class LuckNumber
{
public static void main(String[] args)
{
int[] arr = {1,2,3,4,5,6,7,8}; //定义一个一维数组其中a[0]=1......
int pos = -1; //应该起标记作用
for(int x=0;x<arr.length-1; x++) //遍历该一维数组 第一次:x=0 第二次:x=1 第三次:x=2 第四次:x=3 第五次:x=4 第六次:x= 5 第七次:x=6
{
for(int y=0; y<3;y++) //循环三次(使其pos每次加以1) y=0
{
pos++; //pos自增1 pos=0
if(pos==arr.length) //判断pos是否自增为该数组的长度,若是 则pos=0 不成立 第三次成立:pos=0
pos=0;
while(arr[pos]==0)//判断该组数中是否有为0的元素 不成立
{
pos++;
if(pos==arr.length)
pos=0;
}
} 第一次 : 嵌套的for循环结束后 pos=2 第二次:pos=5 第三次:pos=0 第四次:pos=2 第五次:pos=0 第六次:pos = 0 第七次:pos=0
arr[pos] = 0; // arr【2】=0 arr【5】= 0 arr【0】=0 。。。。
//System.out.println(arr[pos]);
}
for(int x=0; x<arr.length; x++)
{
if(arr[x]!=0)
{
System.out.println(arr[x]); 想必输出的事arr[1] = 2
break;
}
}
}
}
该题目的要求恐怕就是要使数组角标为0,2,5的元素的值为0;我没验证,若错误了请谅解。
|