Arrey que não escreve o que quero

4 respostas
M
import java.util.Scanner;
	public class parimpar3{
		public static int[] par(  int[] parImpar ){
			int[] ap=new int[0];  // aqui como devo criar o array com a dimensão que quero?
			for( int n=0,p=0; n <= 9; ++n ){
				if(parImpar[n]%2==0){
				ap=new int[p+1];
				ap[p]=parImpar[n];
				++p;
				}
			}
			return ap;
		}	
				public static void main(String[] args) {
		int[] par1={2,4,6,8,7,645,53,534,35,345};
				
			System.out.println("Pares :"+java.util.Arrays.toString(parimpar3.par(par1))); 
			}
			}

o meu problema é que são fica gravado no array o ultimo valor testado?

4 Respostas

gpd38

TODOS OS PARES SAO IMPRESSOS

import java.util.Scanner;
    public class parimpar3{
       public static int[] par(  int[] parImpar ){
       
         int[] ap=new int[10];  // aqui como devo criar o array com a dimensão que quero?
       
         for( int n=0,p=0; n <= 9; ++n ){
            if(parImpar[n]%2==0){
               //ap=new int[p+1];//NAO USAR
               ap[p++]=parImpar[n];
               //++p;//NAO USAR
            }
         }
         return ap;
      }	
       public static void main(String[] args) {
         int[] par1={2,4,6,8,7,645,53,534,35,345};
      		
         System.out.println("Pares :"+java.util.Arrays.toString(parimpar3.par(par1))); 
      }
   }
M

pois mas agora o problema e outro esta a imprimir um array com 10 elementos logo alguns ficam a 0

gpd38

Faz o seguinte entao.

Cria um for so para percorrer e contar quantos impares e quantos pares tem no vetor e inicializa o vetorpar com o numero de pares que encontrou

gpd38
import java.util.Scanner;
    public class parimpar3{
    
      static int cp=0;
    
       public static int[] par(  int[] parImpar ){
       
         int[] ap=new int[cp];  // aqui como devo criar o array com a dimensão que quero
       
         for( int n=0,p=0; n <= 13; ++n ){
            if(parImpar[n]%2==0)
               ap[p++]=parImpar[n];
         }
         return ap;
      }	
       public static void main(String[] args) {
         int[] par1={2,4,6,8,7,645,53,534,35,345,2666,2566,21456,8888};
         
         for(int x=0; x<par1.length;x++){
            if(par1[x] %2 == 0)
               cp++;
         }
      		
         System.out.println("Pares :"+java.util.Arrays.toString(parimpar3.par(par1))); 
      }
   }
Criado 8 de novembro de 2008
Ultima resposta 8 de nov. de 2008
Respostas 4
Participantes 2