Dúvida de atribuição a variaveis pelo For!

3 respostas
U

Gente estou tentando dentro do FOR pegar a nota de entrada e atribuir as variaveis maior_nota e menor_nota pelas condições.

O resultado do programa está aparecendo apenas os valores inicais e não estão sendo atribuidos dentro do for.

Obrigado!

/* Notas_Alunos 
@author Raphael Santana Carvalho */

import javax.swing.JOptionPane; // classe JOptionPane

public class Notas_Alunos {

	public static void main(String args[]) {
	
		int aluno = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantos alunos há na sala?")); 
		double prova = Double.parseDouble(JOptionPane.showInputDialog(null, "Favor informar a pontuação máxima \npara as notas dos alunos:")); 
		
		int id_aluno;
		double notas = prova/2;
		double nota_aluno = 0;
		double menor_nota=notas, maior_nota=0;
		double media = 0;

	for (id_aluno=1; id_aluno <= aluno; id_aluno++) {

		String texto_aluno = JOptionPane.showInputDialog(null, "Digite a nota do aluno "+id_aluno+":");
		nota_aluno = Double.parseDouble(texto_aluno);

		media += nota_aluno;

		if (nota_aluno >= maior_nota) {
		nota_aluno = maior_nota;	
      		}

		if (nota_aluno < menor_nota) {
		nota_aluno = menor_nota;	
      		}
	}

		media = media/aluno;
		JOptionPane.showMessageDialog(null, "A sala tem: "+aluno+" alunos. \n E a média dos alunos é: "+media+". \n\n A maior nota é: "+maior_nota+". \n A menor nota é: "+menor_nota+".");

	}
}

3 Respostas

drsmachado

Este trecho está errado:

if (nota_aluno >= maior_nota) {
		nota_aluno = maior_nota;	
      		}

Quando você faz a comparação, está considerando que a maior nota pode ser igual a nota já lida.
Além disto, você está atribuindo a maior nota à variavel nota_aluno, quando deveria fazer o contrário:

if (nota_aluno > maior_nota) {
                    maior_nota = nota_aluno;	
      		}

No segundo trecho, da menor nota, também o mesmo erro de lógica.

U

kkk nem percebi, obrigado!

P

Acho que você deveria remover os underlines “_” faça nomeAluno ao invés de nome_Aluno, e talves remover o código do método main, faça um construtor.
Apenas para seguir a sintaxe
É algum trabalho a ser entregue?

Criado 13 de fevereiro de 2011
Ultima resposta 13 de fev. de 2011
Respostas 3
Participantes 3