Ajuda com vetor

5 respostas
B

Boa tarde galera, preciso de uma ajuda com vetor, "faça um programa que leia N nomes e notas de uma turma.
calcule e exiba a media e as notas da turma e em seguida exiba a relação de nomes
e cuja a nota seja superior a esta media.
Devera usar um vetor para os nomes e outro para as notas...."

não estou conseguindo fazer a repetição dos vetores, ja tentei o FOR e WHILe mas o resultado eh sempre o mesmo, roda uma vez e depois repete mais errado, segue o codigo

import java.util.Scanner;

public class Exe4 {

    public static void main(String[] args) {
        Scanner ler = new Scanner(System.in);

        int indice, indice1, cont = 0;
        String vet[];
        vet = new String[10];
        Double vet1[];
        vet1 = new Double[10];

        while (cont < 10) {
            System.out.println("Digite o nome de um aluno");
            vet[0] = ler.nextLine();


            System.out.println("Digite a nota desse aluno");


            vet1[0] = ler.nextDouble();
            System.out.println(vet[0] + vet1[0]);

        }
        cont++;
    }
}

5 Respostas

Fellipex

Você está incrementando o count fora do WHILE
Logo ele vai pedir infinitamente para você digitar as informações visto que 0 sempre será menor que 10
Não sei se é o unico problema mas coloca esse count++ no fim do while antes de fechar a } , porque dai na proxima iteração o count será 1 , e vai incrementando até não atender mais a condição <10

System.out.println(vet[0] + vet1[0]);  
    cont++;  
 }

Att

B

Fellipex:
Você está incrementando o count fora do WHILE
Logo ele vai pedir infinitamente para você digitar as informações visto que 0 sempre será menor que 10
Não sei se é o unico problema mas coloca esse count++ no fim do while antes de fechar a } , porque dai na proxima iteração o count será 1 , e vai incrementando até não atender mais a condição <10

System.out.println(vet[0] + vet1[0]);  
    cont++;  
 }

Att

Continua com o mesmo erro, ele nao repete certo, olha como repete

run:
Digite o nome de um aluno
fabio
Digite a nota desse aluno
4
fabio4.0
Digite o nome de um aluno
Digite a nota desse aluno

essa parte debaixo era pa repetir primeiro o “Digite o nome do aluno” , depois q digitado repetir o “Digite a nota desse aluno” mas ja repete os dois de uma vez, sem da espaço pra digitar o nome

F

Não use ler.nextDouble();.
Ao invés disso use Double.parseDouble(ler.nextLine());.

B

felipeaps:
Não use ler.nextDouble();.
Ao invés disso use Double.parseDouble(ler.nextLine());.

Deu certo, poderia me explicar essa linha?

vlw brigadão

F

O que acontece é o seguinte:

nextLine() pega a linha inteira até o delimitador de próxima linha.
os outros nexts (nextInt, next, nextLong … etc) apenas pegam o próximo token, é até possível passar uma regex como parâmetro.
Este token, por default não contém o delimitador.

Vamos dizer que o delimitador é \n. Quando vc escreve a nota do aluno, a linha fica “10\n”.
Aí vc usa o nexDouble(), que te retorna o 10. A linha ainda não está acabada. Quando vc tenta usar o nextLine()(para pegar o segundo nome), ele pega o \n da linha que tava o “10\n”, pulando a linha.

Entendeu + -?

Criado 31 de outubro de 2012
Ultima resposta 31 de out. de 2012
Respostas 5
Participantes 3