[RESOLVIDO] Dúvida com lógica

4 respostas
Onimatsu
Boa tarde. Eu preciso de uma ajudinha de vocês não é um exercício difícil mas eu preciso de uma segunda opinião. Minha dúvida tem a ver com a lógica da porcentagem eu sei como fazer no papel mais acho que do jeito que usei no algoritmo está incorreto:
/* Algoritmo que leia dados para um vetor de 10 elementos inteiros.
 * Imprimir o percentual de números pares.
 */
package testador;

import java.util.Scanner;

public class Ex367vetores {

    public static void main(String args[]) {

        Scanner leia = new Scanner(System.in);
        int vetor[] = new int[10];        
        int somaPares = 0;
        double cont = 0;
        double porcentagem = 0;

        for (int i = 0; i < 10; i++) {
            System.out.print("Digite o " + (i + 1) + " valor: ");
            vetor[i] = leia.nextInt();
        }
        
        for (int i = 0; i < 10; i++) {
            if (vetor[i] % 2 == 0) {
                somaPares = somaPares + vetor[i];
                cont++;
            }
        }
        porcentagem = cont * somaPares / 100;
        System.out.println("\nPorcentagem: " + porcentagem + "%");
    }
}
Então certo ou errado?

4 Respostas

igor_ks

pra que dois “for” ?

marcos4ft
/* Algoritmo que leia dados para um vetor de 10 elementos inteiros. 
* Imprimir o percentual de números pares. 
*/

Pelo q entendi, o exercicio seria pra mostrar a porcentagem de numeros pares no vetor, ou seja, se tenho 10 numeros e 5 são
pares, então a porcentagem seria de 50%, certo?

se for isso, eu faria assim

for (int i = 0; i < 10; i++) {  
            if (vetor[i] % 2 == 0) {  
                cont++;  
            }  
        }  
        porcentagem = cont * 10;

Obs: Realmente, pode fazer toda a lógica no primeiro for apenas

ViniGodoy

Só para lembrar a regra de como se calcula uma porcentagem.

Primeiro, lembre-se que "porcentagem" vem de "por cento" que significa "a cada cem".

Assim, se você quer saber a cada cem unidades, deve multiplicar a quantidade contada por 100.

percentual = (quantidade contada * 100 / quantidade total);

A fórmula do marcos da certo, mas apenas para esse caso de 10 números, porque:
percentualNesseCaso = (quantidade contada * 100 / 10); => logo
percentualNesseCaso = (quantidade contada * 10);

Onimatsu

Obrigado a todos pelas respostas o código ficou assim: for (int i = 0; i < 10; i++) { if (vetor[i] % 2 == 0) { cont++; } } porcentagem = cont * 100.0 / 10.0; // quantidade de pares * 100 / tamanho total do vetorEu coloquei uma variável desnecessária como somaPares e acabei calculando a porcentagem com os dados errados.
Mas agora está tudo certo. Vlw!

Criado 24 de maio de 2012
Ultima resposta 25 de mai. de 2012
Respostas 4
Participantes 4