Código sobre Vetor

3 respostas
V

Olá, sou iniciante em java e em programação, tenho a seguinte questão sobre Vetor: ? Escreva um algoritmo que leia um vetor de 10 posições e mostre-o ordenado em
ordem crescente.

Segue o código que elaborei, ficou bastante confuso e está dando erro na hora de imprimir na ordem crescente, se algúem poder ajudar fico muito grato.

import java.util.Scanner;
public class Exercicio10 {
	public static void main(String [] args){
		int maior = -[telefone removido];
		int nums[] = new int[10];
		int cont = 0;
		int aux2 = 0;
		int aux = 0;
		Scanner Var = new Scanner(System.in);
		
		for(int i = 0; i < 10; i ++){
			System.out.println("Digite o numero: ");
			nums[i] = Var.nextInt();
		}
		
		
		for(int i = 0; i < 10; i ++){
			for(int j = 0; j < 10; j ++){
				if(nums[j] > maior){
					maior = nums[j];
					cont = j;
				}
			}
			
			
			if(i >= 5 ){
				aux = nums[i];
				aux2 = nums[cont];
				nums[cont] = nums[i];
				nums[i] = aux2;
			    nums[cont] = aux2;
			    if( i == 9){
					System.out.println(aux+".");
					break;
				}
				System.out.print(aux+  ", ");
			}else{
			
			aux = nums[cont];
			aux2 = nums[i];
			nums[i] = nums[cont];
			nums[cont] = aux2;
		    nums[i] = aux2;
			System.out.print(aux+  ", ");
			maior = -[telefone removido];
			}
			
			
		}

	}
}

3 Respostas

nel

Oi,

eu não olhe seu código, mas lhe digo. Quando dizemos que nosso código está gerando uma exceção, o correto é que postemos ela.
Sendo assim, poste para que possamos analisar.
Um adendo, se estiver ocorrendo uma ArrayIndexOutBoundException, é porque está acessando uma posição inexistente do vetor, assim:

int[] vet = new int[] {1, 2}; vet[2];

‘vet’ é de tamanho 2, mas suas posições são: 0 e 1, portanto, acessar a posição 2 iria gerar uma exceção.
Abraços.

yhhik
uma olhada rápida no seu código achei vários erros: 1°por que vc está criando esse tanto de variáveis? 2°no algoritmo de seleção por ordenação vc compara cada membro do vetor com todos os outros..então pq vc está comparando com uma variável? o correto seria assim né?
for(int i = 0; i < 10; i ++){   
            for(int j = 0; j < 10; j ++){   
                if(nums[i] > nums[j]){   
                    aux=nums[i];
                    nums[i]=nums[j];
                    nums[j]=aux;
                }   
            }       
               
        }
3° que POG foi esse ae que vc utilizou pra mostrar os elementos? vc só precisa fazer isso:
for(int i = 0; i < 10; i ++){   
        	System.out.print(nums[i]+  ", ");   
        }
V

Consegui arrumar meu código, foi mais simples do que eu penssava, ficou bem assim.

import java.util.Scanner;
public class Exercicio10 {
	public static void main(String [] args){
		int nums[] = new int[10];
		int aux = 0;
		Scanner Var = new Scanner(System.in);
		for(int i = 0; i < 10; i ++){
			System.out.println("Digite o numero: ");
			nums[i] = Var.nextInt();
		}
		// lendo valores digitados
		
		//ordenando o vetor
		for(int i = 0; i < 10; i ++){			
			for(int j = i +1; j < 10; j ++){
				if(nums[j] > nums[i]){
					
					aux = nums[i];
					nums[i] = nums[j];
					nums[j] = aux;
				}
							
			}
		}
		
		// mostrando o vetor
		for(int i = 0; i < 10; i ++){
			System.out.print(nums[i] + " ," );
		}
	}
}
Criado 9 de novembro de 2011
Ultima resposta 9 de nov. de 2011
Respostas 3
Participantes 3