当前位置: 代码迷 >> Eclipse >> 数组有关问题 求纠正
  详细解决方案

数组有关问题 求纠正

热度:10   发布时间:2016-04-23 02:02:46.0
数组问题 求纠正~
输入20个整数,输出其中能被数组中其它元素整除的那些数组元素。为什么我输出不对,求纠正。
样例输入

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

样例输出
4 6 8 9 10 12 14 15 16 18 20 21


我的代码:



  Scanner rd=new Scanner(System.in);

  int arr[]=new int[20];

  int k=0;

  for(int i=0;i<20;i++)

  {

   arr[i]+=rd.nextInt();

  }

  for(int i=0;i<arr.length;i++)

  {

    k=i;

       arr[k]=arr[i];

       for(int j=0;j<20;j++)

       {

        if(k==j)

        {

         continue;

        }

        else if(arr[k]%arr[j]==0)

        {

         System.out.print(arr[k]+" ");

        }

       }

  }

 }

}


------最佳解决方案--------------------
你的这个:
 if(flag)
            {
                System.out.print(arr[i]+" ");
            }

是不是写错地方了呢?
还有:
rd.close();

呵呵,对照一下就好了。
------其他解决方案--------------------
哪里错了 没看出来?
------其他解决方案--------------------
是这个意思吗?
import java.util.Scanner;

public class Demo
{
public static void main(String[] args)
{
int len = 20;
Scanner rd = new Scanner(System.in);
int arr[] = new int[len];
for (int i = 0; i < len; i++)
{
arr[i] += rd.nextInt();
}

for (int i = 0; i < len; i++)
{
boolean flag = true;
for (int j = 0; j < len; j++)
{
if(0 != arr[j] % arr[i])
flag = false;
}
if(flag)
System.out.println(arr[i]);
}
rd.close();
}
}

------其他解决方案--------------------
楼上小兵正解
------其他解决方案--------------------
引用:
是这个意思吗?


Java code



12345678910111213141516171819202122232425262728

import java.util.Scanner;   public class Demo {     public static void main(String[] args)     {         int len = 20; ……
  相关解决方案