Projeto Array

2 respostas
S

Alguém pode me o código desse problema:

Faça um programa que peça ao usuário para digitar um número inteiro, inserindo-o
em um array. Os elementos deste array já se encontram ordenados, em ordem
crescente, por isso a inserção do número deve manter a ordenação do array. Ao final
de cada inserção, o programa exibe o conteúdo do array para mostrar que o mesmo
continua ordenado. O programa deve pedir um novo número para usuário até o array
não apresentar mais espaço.

2 Respostas

zelopes

porque você não tenta fazer antes de sair pedindo para que alguem faça o exercicio por você…???

H

e aí Samilu... no começo esses exercicios são f**a né?
mas é pra desenvolver o raciocínio lógico...
gostei do desafio e fiquei uma caaaaaaaaaara tentando...
mas como acabaram os cigarros, e já são 3:15... e daqui 3 horas e meia preciso ir pro trabalho (+ java!), parei por aqui...
eu ACHO que só falta conseguir aumentar o lenght da array[] no for...
e apagar algumas coisinhas...
alguém ajuda??????????
BORA VAI!!!

/*
 * InsereArray.java
 *
 * Created on 16 de Maio de 2006, 01:09
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package Guj;

import java.util.Scanner;
/**
 *
 * @author xp
 */
public class InsereArray {
    
    
    public static void main(String[] args) {
        int array[] = {3, 6, 7, 12, 13, 80, 98,};
        int array2[] = new int[array.length + 1];
        int numeroInserido;
        int temp;
        int temp2;
        int temp3;
        
        
        // exibe os valores originais do array
        for (int a=0; a < array.length; a++) {
            
            System.out.print( array[ a ]);
            System.out.println();
        }
        
        Scanner input = new Scanner( System.in );
        System.out.println("Digite um numero inteiro:");
        numeroInserido = input.nextInt(); // atribui numero digitado para numeroInserido
        
        for (int counter = 0; counter < array.length; counter++) {
            System.out.println("contagem for maior 1 " + "array[" + counter + " ] = " + array[counter]);
            temp = array[counter]; // atribui temp a array[ valor do contador que é incrementado no loop] 
            
            // se numeroInserido(==1) < array[0](==3) -> array[0] == 1, array[2] == 3, array[3] == 4. array[4] == 7...
            
            if (numeroInserido > array[counter] && numeroInserido < array[counter+1]) {
                
                for(int i=1; i < array.length; i++) {
                System.out.println("Contagem for interno do array[" + counter + "] = " + array[counter]);
                System.out.println("do array2[" + i + "] =" + array2[ i ] + "valor de i = [i]");
                System.out.println();
                
                temp2 = array[counter + 1];
                array2[i] = array[counter + 1];
                array[counter+1] = numeroInserido;
                array[counter+1+i] = temp2;
                System.out.println("Após troca de valores:");
                System.out.println("array[" + (counter + 2) + "] =" + array[counter + 2]);
                System.out.println("e array2[" + i + "] =" + array2[ i ] + " (i = [i] valor tem q ser igual acima");
                continue;
                }
                
            }
        } // fim do maior for
        
        for (int b = 0; b < array.length; b++){
            System.out.print( array[b] );
            System.out.println();
        }
        
    } // fim do main
}

EXEC:
------------------------
3
6
7
12
13
80
98
Digite um numero inteiro:
10
contagem for maior 1 array[0 ] = 3
contagem for maior 1 array[1 ] = 6
contagem for maior 1 array[2 ] = 7
Contagem for interno do array[2] = 7
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
do array2[1] =0valor de i = [i]
at Guj.InsereArray.main(InsereArray.java:56)

Após troca de valores:
array[4] =12
e array2[1] =12 (i = [i] valor tem q ser igual acima
Contagem for interno do array[2] = 7
do array2[2] =0valor de i = [i]

Após troca de valores:
array[4] =12
e array2[2] =10 (i = [i] valor tem q ser igual acima
Contagem for interno do array[2] = 7
do array2[3] =0valor de i = [i]

Após troca de valores:
array[4] =12
e array2[3] =10 (i = [i] valor tem q ser igual acima
Contagem for interno do array[2] = 7
do array2[4] =0valor de i = [i]

Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
-----------------------
ta meio bagunçado tentei achar os erros com println.... mas ainda sou leigo programo há 2 semanas... ia adorar se alguem completasse e explicasse...
valeu!

Criado 15 de maio de 2006
Ultima resposta 16 de mai. de 2006
Respostas 2
Participantes 3