数组问题 求纠正~
输入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();
}
}
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 = false;
for (int j = 0; j < len; j++)
{
if(j == i)
continue;
if(0 == arr[i] % arr[j])
flag = true;
}
if(flag)
System.out.println(arr[i]);
}
rd.close();
}
}
if(flag)
System.out.print(arr[i] + " ");
{
flag=true;
}
if(flag)
{
System.out.print(arr[i]+" ");
}
}
rd.close();
}
}
}
[其他解释]
那你是怎么操作的呢?
[其他解释]
public static void main(String[] args) {
// TODO Auto-generated method stub
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 = false;
for (int j = 0; j < len; j++)
{
if(j==i)
{
continue;
}
if(0==arr[i]%arr[j])
{
flag=true;
}
if(flag)
{
System.out.print(arr[i]+" ");
}
}
rd.close();
}
}
}