读书人

数组有关问题 求纠正

发布时间: 2012-12-16 12:02:32 作者: rapoo

数组问题 求纠正~
输入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; ……


不行。。
[其他解释]
引用:
引用:是这个意思吗?


Java code



12345678910111213141516171819202122232425262728

import java.util.Scanner; public class Demo { public static void main(Strin……

仔细看了一下你给的那个示例:
你应该是这个意思了!
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();
}
}

[其他解释]
引用:
引用:
引用:是这个意思吗?


Java code



12345678910111213141516171819202122232425262728

import java.util.Scanner; public class Demo { public static void……

不行啊,大哥。输出会有很多相同数字,麻烦测试一下呀!
[其他解释]
修改为不换行
if(flag)
System.out.print(arr[i] + " ");


不对吗?
[其他解释]
引用:
修改为不换行


Java code



12

if(flag) System.out.print(arr[i] + " ");

不对吗?

为什么我输出不行?
[其他解释]
引用:
引用:
修改为不换行


Java code



12

if(flag) System.out.print(arr[i] + " ");

不对吗?
为什么我输出不行?


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();
}
}
}
[其他解释]

那你是怎么操作的呢?
[其他解释]

引用:
那你是怎么操作的呢?

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();
}
}
}

读书人网 >Eclipse开发

热点推荐