Check if given a value there are two values in the vector that are added equal to the value reported

-1

I'm doing a game where the user has a menu with options and the option I took is the following, I make the normal loop and compare the values but it falls directly on ELSE , where I'm going wrong ?

  
  • Check if given a score there are two scores in the list of scores that are added equal to the   punctuation.   And finally, we have the operation that verifies if there are two scores in the vector, in different positions, that   summed score results, your program should tell you whether or not the   score equal to the sum of two other distinct scores.
  •   

    The code is at this link: here

    package scoregamer;
    
    import java.util.Scanner;
    
    public class ScoreGamer {
    
        public static void main(String[] args) {
             Scanner ler = new Scanner(System.in);
    
            //Declara as variaveis
            int codigo = 0;
            int i = 0;
            int j = 0;
            int qtdVetor = 0;
            int maior= 0;
            int pont = 0;
            int soma = 0;
            int num = 0;
            int posicao = 0;
            int numRemove = 0;
            int add = 0;
            int qtd = 0;
            int tamanho = 5;
            int pontRepetido = 0;
            int totalDeAlunos = 0;
            int verificarPontos = 0;
            int cont = 0;
            int somaPonto = 0;
            int valorNovo = 0;
    
    
    
            //Foi criado o vetor
            int lista[] = new int[10];
    
            //Utiliza o laço para escolher as opções
            do{
                System.out.println("|-------------------- Menu principal ------------------------|");    
                System.out.println("|                                                            |");
                System.out.println("|(0) Adicionar Pontuação no final da lista                   |");
                System.out.println("|(1) Adicionar Pontuação em uma dada posicção                |");
                System.out.println("|(2) Remover uma pontuação de uma dada posição               |");
                System.out.println("|(3) Remover todas as ocorrências de uma pontuação           |");
                System.out.println("|(4) Verificar se uma pontuação está contida na lista        |");
                System.out.println("|(5) Buscar a maior pontuação na lista de scores             |");
                System.out.println("|(6) Calcular a soma total de pontuação na lista de scores   |");
                System.out.println("|(7) Verificar se dado uma pontuação existem duas pontuações |");
                System.out.println("|(8) Sair                                                    |");
                System.out.println("|------------------------------------------------------------|");  
    
                System.out.println("");
                System.out.println("Escolha uma opção: ");
                codigo = ler.nextInt();
                //É feito um switch case para escolher uma das opções
                switch(codigo){
                    //Adicionar Pontuação no final da lista  
                    case 0:
                        System.out.println("Digite a pontuação");
                        pont = ler.nextInt();     
    
                        lista[qtdVetor] = pont;
                        qtdVetor++;
                        imprimeVetor(lista, qtdVetor);
                        break;
    
                        //Adicionar Pontuação em uma dada posicção 
                    case 1:
                        System.out.println("Digite a posição que queira adicionar o valor: ");
                        add = ler.nextInt();
    
                        //Mover todos os elementos
                        qtdVetor++;
                        for(i = qtdVetor-1; i > add; i--){
                            lista[i] = lista[i-1];
                        }
                        System.out.println("Digite o valor para a posição: ");
                        valorNovo = ler.nextInt();
                        lista[i] = valorNovo;
    
                        imprimeVetor(lista, qtdVetor);                
                        break;
    
                        //Remover uma pontuação de uma dada posição 
                    case 2:
                        System.out.println("Digite a posição que queira remover do vetor: ");
                        numRemove = ler.nextInt();
    
                        //Mover todos os elementos
    
                        for(i = numRemove; i < qtdVetor-1; i++){
                            lista[i] = lista[i+1];
                        }
    
                        lista[i] = numRemove;
                        qtdVetor--;
                        imprimeVetor(lista, qtdVetor);    
                    break;
    
                        //Remover todas as ocorrências de uma pontuação 
                    case 3:
                        for(i = 0;  i < lista.length; i++){
                            lista[i] = 0;
                }
                imprimeVetor(lista, qtdVetor);
                        break;
    
                        //Verificar se uma pontuação está contida na lista
                    case 4:                        
                        System.out.println("Digite a pontuação");
                        num = ler.nextInt();    
                        for(i = 0; i < qtdVetor; i++){
                            if(lista[i] == num){
                                System.out.println("O numero " +num+ " digitado existe na posição "+i);
                            }
                        }
                        break;
    
                        //Buscar a maior pontuação na lista de scores
                    case 5:
                        for(i = 0; i < qtdVetor; i++){
                            if(lista[i] > maior){
                                maior = lista[i];   
                            }
                        }
                        System.out.println("A maior pontuação foi "+maior);
                        break;
    
                        //Calcular a soma total de pontuação na lista de scores 
                    case 6:                                
                        for(i = 0; i < qtdVetor; i++){
                            soma = soma + lista[i];
                        }
                        System.out.println("Soma total = "+soma);
                        break;
    
                        //Verificar se dado uma pontuação existem duas pontuações
                    case 7:
                        System.out.println("Digite um valor para verificar: ");
                        verificarPontos = ler.nextInt();
    
                        for(i = 0; i < qtdVetor; i++){   
                            somaPonto += lista[i];    
                        }
                        if(verificarPontos == somaPonto){
                            System.out.println("SIM");
                        }else{
                            System.out.println("NAO");
                        }
    
                        break;
                    default:
                        System.out.println("Você saiu do jogo");
                }
                i++;
            }while(codigo != 8);
    
        }
        public static void imprimeVetor(int lista[], int qtd){
            System.out.print("{");
            for(int i = 0; i < qtd; i++){
                System.out.print(lista[i]+" ");
            }       
            System.out.println("}");
        }
    }
    
        
    asked by anonymous 03.12.2017 / 02:31

    1 answer

    1

    At each cycle iteration, you must set PointSum to zero. Something like this:

    do {
        somaPonto = 0;
        ...
    } while(codigo != 8);
    
        
    28.12.2017 / 13:54