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

Asked

Viewed 136 times

0

I’m making a game in which the user has a menu with options and the option I’ve crossed is the following, I do the normal loop and compare the values but it falls right into the ELSE, where I’m going wrong?

  1. Check if given a score there are two scores in the list of Scores that summed equal to punctuation. And finally, we have the operation that checks whether there exist in the vector two scores, in different positions, that summed results in an informed score, your program must indicate yes or no score equal to sum of two other separate scores.

The code is on that 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("}");
    }
}
  • 1

    see if you can help https://ide.geeksforgeeks.org/24AuuS0puY

1 answer

2

At each iteration of the cycle you must define summation as zero. Something like:

do {
    somaPonto = 0;
    ...
} while(codigo != 8);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.