首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

数组有关问题 求纠正

2012-12-16 
数组问题 求纠正~输入20个整数,输出其中能被数组中其它元素整除的那些数组元素。为什么我输出不对,求纠正。

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

热点排行