Problemas com array multidimensional

6 respostas
cassius_fpu

Maçada boa noite,

estou tentando fazer um código que leia a quantidade de alunos, quantas provas cada um fez e leia o nome de cada aluno. Fiz o seguinte código:

import java.util.Scanner;
import static java.lang.System.out;

public class MultiComplexo
{
    public static void main(String args[])
    {
        Scanner input = new Scanner(System.in);
        
        out.printf("Quantos alunos?\n");
        int totalAlunos = input.nextInt();
        
        out.printf("Quantos provas para cada um?\n");
        int totalProvas = input.nextInt();        
        
        int notas[][] = new int[totalAlunos][totalProvas];
        String nomes[] = new String[notas.length];
   
     
        for (int cont = 0; cont < nomes.length; ++cont)
        {
            out.printf("Entre com o nome do aluno %d:\n", (cont + 1));
            nomes[cont] = input.nextLine();
        }
        
    }
}

Estou tendo problemas na hora de montar o array com os nomes, pois ele já começa pedindo o nome de nomes[1] ao invés de nomes[0].

Alguém pode me ajudar?

Desde já agradeço.

6 Respostas

Andre_Fonseca

no seu for ao inves de fazer ++cont faça cont++

abs

normandesjr

Amigo, me parece que seu problema está no método usado para ler a linha. Ao invés de utilizar o input.nextLine() utilize input.next().

Abraços.

francislon

André Fonseca wrote:

no seu for ao inves de fazer ++cont faça cont++

O nosso amigo André está certo.
De acordo com a forma que vc está fazendo, vc nunca vai ter a variável cont valendo zero, visto que na primeira iteração do for ele vai incrementar o valor de cont para 1.
Se vc fizer cont++ ao invés de ++cont, na primeira iteração do for cont vai estar valendo zero e depois quando for voltar a iterar ele vai valer 1.
Abraço.

cassius_fpu

Pessoal, certo estava o normandesjr:

Foi só mudar o método nextLine para next e o problema foi resolvido.

Quanto pré-incrementar ao invés de pós-incrementar o contador da instrução for, não faz diferença, pois, até onde eu sei for inicia o contador, verifica a condição, se a condição for true executa a(s) instruções no seu corpo e só depois incrementa ou decrementa (conforme o caso), senão segue para a próxima instrução, se houver.

Andre_Fonseca

vc esta certo cassius_fpu, fazer count++ ou ++count nao faz diferença dentro do for(,)

falha minha :frowning:

cassius_fpu

d boua, o q vale é a sua intenção em ajudar!

Aliás esqueci de agradecer: Muito obrigado a todos q interagiram nesse tópico!

:wink:

Criado 9 de outubro de 2007
Ultima resposta 10 de out. de 2007
Respostas 6
Participantes 4