Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Roberto Costa Junior

Algoritimo loteria esportiva

Recommended Posts

Escreva um programa em JAVA que leia um vetor de 13 elementos inteiros, que é o Gabarito de um teste da loteria esportiva, contendo os valores 1 (coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir, para vários apostadores, o número do seu cartão e um vetor de Respostas de 13 posições. Verifique para cada apostador o número de acertos, comparando o vetor de Gabarito com o vetor de Respostas. Escreva o número do apostador e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem "Ganhador". O programa deve parar de solicitar dados de apostadores quando o número do cartão informado for 0 (zero).

 

 

import java.util.Scanner;

public class vetor2

{

public static void main (String[]args)

{

int cartelagabarito[], cartelaaposta[];

cartelagabarito = new int[13]; cartelaaposta = new int[13];

int i, j, aposta, acertos = 0;

Scanner input = new Scanner(System.in);

 

System.out.println("Gagarito da Loteria Esportiva");

 

for (i=1; i<=14; i++)

{

System.out.printf ("Informe numero: "+i+"/13: ");

cartelagabarito = input.nextInt();

}

 

System.out.println ("Informe o numero da aposta");

aposta = input.nextInt();

 

for (i=1; i<=14; i++)

{

System.out.println ("Informe numero: "+i+"/13: ");

cartelaaposta = input.nextInt();

}

 

 

for (i=1; i<=13; i++)

{

for (j=1; j<=14; j++)

{

if (cartelagabarito[j] == cartelaaposta)

{

acertos++;

}

}

}

 

if (acertos == 13)

System.out.println (" Parabéns "+aposta+" você Ganhou, acertou os 13 números");

else

System.out.println ("O Apostador "+aposta+ " acertou"+acertos+ " Números!");

}

}

 

te me gerando um erro

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 13

at vetor2.main(vetor2.java:16)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está tendo estouro do array, lembre-se que o array vai de o a n-1, ou seja se declarar o array com [20] ele vai da posição 0 até 19.

 

Reveja seu códio no for, ao invés de colocar <= 20 coloque só < 20 !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usar Array é fods pq limita muito.. usa Vetor e melhor.. abaixo eu fiz um exemplo com vetor

 

import java.util.Scanner;
import java.util.Vector;

public class loteria {

Vector<Integer> cartelaGabarito = new Vector<Integer>();
Vector<Integer> cartelaAposta = new Vector<Integer>();
int aposta;
int acertos = 0;
Scanner input = new Scanner(System.in);

public static void main(String[] args) {
	new loteria();
}

public loteria(){		
	System.out.println("** - Gagarito da Loteria Esportiva - **");

	populaVetor(cartelaGabarito);		

	System.out.println("Informe o numero da aposta: ");
	aposta = input.nextInt();

	populaVetor(cartelaAposta);

	for (int i = 0; i < 13; i++) {
		if(cartelaGabarito.contains(cartelaAposta.get(i))){
			acertos++;
		}
	}

	if (acertos == 13)
		System.out.println(" Parabéns - " + aposta + " - você Ganhou, acertou os 13 números");
	else
		System.out.println("O Apostador - " + aposta + " - acertou = " + acertos + " Números!");
}

private void populaVetor(Vector<Integer> Vetor) {
	for (int i = 0; i < 13; i++) {
		System.out.printf("Informe numero: " + (i+1) + "/13: ");
		Vetor.add(input.nextInt());
	}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.