Erro que não sei como resolver [Array]

7 respostas
M

Boas!

Estou aqui a tentar fazer um programinha que peça ao utilizador exactamente 100 numeros e que escreva no ecran "maior" sempre que o numero inserido seja maior que o anterior.

Eu fiz isto :

import java.util.*;


public class Exercicio {
	public static void main ( String [] args){
		int[]v=new int [100];
		Scanner sc = new Scanner (System.in);
		System.out.println("Insira 100 numeros inteiros");
		for(int i=0;i<v.length;i++){
			v[i]= sc.nextInt();
			
			if(v[i]>v[i-1]){
				System.out.println("maior");
			}
				
			
			}
		}
		
				
	}

Eu sei que o erro está no facto de não haver posição -1 no vector, mas não sei como fazer então :s

Alguém tem sugestões?

Obrigada

7 Respostas

pmlm

Antes do if tens de verificar que não estás na posição 0.

M

Ah, claro! Obrigada pela dica!

M

Ok, agora consegui, mas o ciclo para escrever maior está interminavel, tenho que arranjar maneira de o parar!

M
import java.util.*;


public class Exercicio {
	public static void main ( String [] args){
		int[]v=new int [100];
		Scanner sc = new Scanner (System.in);
		System.out.println("Insira um numero");
		for(int i=0;i<v.length;i++){
			v[i]= sc.nextInt();
			while(v[i] != v[0]){
				
			if(v[i]>v[i-1]){
				System.out.println("maior");}
			else{
				System.out.println("Insira outro numero");
				
			}
			break;
			}
			
				
			}
			}
		}

Sempre me disseram que não devia usar break, e a programar assim, apesar de fazer o que quero, acho que não é o que me é pedido. Alguém tem outra sugestão para a resolução disto? Obrigada, desde já!

rmendes08

Na verdade, basta ler o primeiro número fora do laço for

int [] v = new int [100];  

Scanner sc = new Scanner (System.in);

System.out.println("Insira um numero");  

v[0]= sc.nextInt(); //lê o primeiro número fora do laço

for(int i = 1 ; i < v.length ; i++){ //lê a partir do segundo número ( i = 1)
    System.out.println("Insira um numero");

    v[i]= sc.nextInt();

    if(v[i] > v[i-1])
        System.out.println("maior");
}
M

pois é! ehehe obrigada!

pmlm

Isso é porque usaste while e não if…

Criado 8 de junho de 2011
Ultima resposta 8 de jun. de 2011
Respostas 7
Participantes 3