Java - Ayuda con Arreglos

 
Vista:
Imágen de perfil de carlos m

Ayuda con Arreglos

Publicado por carlos m (18 intervenciones) el 17/11/2022 18:44:48
Ayuda con este ejercicio .

voy esto, pero tengo duda en sacar las notas con el mensaje

//Un programa Que calcule n notas de un estudiante

//N notas No puede ser negativo
//Hasta que no ingrese el valor correcto no avanza
//Las notas deben estar de 0 a 5
//No debe permitir que ingrese valores fuera de ese rango (seguir compilando) hasta que ingrese correcto
//Hallar la nota mayor, la nota menor y elija la nota final.
//Si la nota final es de 0 a 2.9 reprobado
//Si saca 3 a 4 nivelar
//De 4.1 a 5 aprobado el curso
//Debe mostrar todas las notas ingresadas

import java.util.Scanner;

public class Main {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String nombre;
double notas;


double listado []= new double [5];
double mayor=0;
double menor= listado[0];
double sumaNotas=0;
double def=0;



System.out.println("\tIngrese el nombre del estudiante: ");
nombre = sc.nextLine();


do {
System.out.println("\tIngrese la nota del estudiante: "+);
notas = sc.nextDouble();
} while (notas >=0 && notas <=5);

if (notas >=0 && notas <=5){

for (int i =0 ; i<listado.length ;i++) {


if (mayor < listado[i]) {
mayor = listado[i];
System.out.println(" Resultado \n" + "El numero Mayor es: "+ mayor);

}
if (listado[i] < menor){
menor = listado[i];
System.out.println(" Resultado \n" + "El numero menor es: "+ mayor);

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con Arreglos

Publicado por Kabuto (1381 intervenciones) el 18/11/2022 09:05:49
Hola.

En realidad tu programa solo pide una nota, no pide las cinco que se necesitan.

Has de separar los procesos de pedir notas y evaluar cuál es mayor y menor. Hasta que no tengas 5 notas no puedes hacer esa evaluación.


Así que has de usar un bucle FOR que se repita 5 veces y pedir las 5 notas, validando como has hecho con el WHILE que estén dentro del rango.

Cuando termine, abres un nuevo bucle FOR que ahora sí podrá evaluar las 5 notas y sumarlas.

Y cuando termine este segundo FOR, podrás mostrar los mensajes con los resultados.

Te dejo un ejemplo resuelto, aunque antes mejor si tú haces un nuevo intento.
Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
public class Pedir5Notas {
 
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		double[] listado = new double[5];
 
		//Pedimos nombre
		System.out.print("Nombre del estudiante: ");
		String nombre = sc.nextLine();
 
		//Pedimos 5 notas, validando que estén dentro del rango
		double nota = 0;
		System.out.println("\nA continuacion introduzca 5 notas entre 0 y 5...");
		for (int i = 0; i < 5; i++) {
			do {
				System.out.print("Nota: ");
				nota = sc.nextDouble();
			} while (nota < 0 || nota > 5);
			listado[i] = nota;
		}
 
		//Ya tenemos 5 notas, computamos los datos solicitados.
		//De paso mostramos las notas ingresadas
		System.out.println("\nNotas ingresadas\n");
		double menor = listado[0];
		double mayor = listado[0];
		double suma = 0;
		for (int i = 0; i < 5; i++) {
			System.out.println("# " + listado[i]);
			if (listado[i] < menor)
				menor = listado[i];
			if (listado[i] > mayor)
				mayor = listado[i];
			suma += listado[i];
		}
 
		//Resultados
		double notaFinal = suma / 5;
		System.out.println("\nEvaluacion final\n");
		System.out.println("Nota mayor: " + mayor);
		System.out.println("Nota menor: " + menor);
		System.out.println("Nota FINAL: " + notaFinal);
 
		System.out.print("\nEl alumno " + nombre);
		if (notaFinal <= 2.9)
			System.out.println(" ha reprobado.");
		else if (notaFinal <= 4)
			System.out.println(" debe nivelar.");
		else
			System.out.println(" ha aprobado.");
 
		sc.close();
		System.out.println("\n\tFIN DE PROGRAMA");
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar