Pedir un tamaño y pedir el número de notras
public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Introduce el tamaño"); int tam=in.nextInt(); int[] notas=new int[tam]; for(int i=0;i<tam;i++) { System.out.println("Introduce la nota "+(i+1)); notas[i]=in.nextInt(); } mostrar(notas); } static void mostrar(int[] tabla) { for(int el:tabla) { System.out.print(el+" | "); } System.out.println(); }
Nos piden refactorizarlo para que sean alumnos y notas:
package com.trifulcas.saludo; import java.util.Scanner; public class EjemploMulti { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Pido el número de alumnos (alto de mi tabla multidimensional) System.out.println("Introduce el número de alumnos"); int alumnos = in.nextInt(); // Pido el número de notas (ancho de mi tabla multidimensional) System.out.println("Introduce el número de notas por alumno"); int numero = in.nextInt(); // Creo un array multidimensional con los datos que me han dado int[][] notas = new int[alumnos][numero]; // Para pedir los datos tengo que usar un bucle anidado // El primero (i) es de los alumnos // El segundo (j) es de las notas // La combinación (i,j) son las coordenadas de mi array bidimensional for (int i = 0; i < alumnos; i++) { System.out.println("Introduce las notas del alumno " + (i + 1)); for (int j = 0; j < numero; j++) { System.out.println("Introduce las nota " + (j + 1)); // Guardo la nota en la coordenada adecuada notas[i][j] = in.nextInt(); } } mostrar(notas); } static void mostrar(int[][] tabla) { // Es otro bucle anidado porque tengo dos dimensiones for (int i = 0; i < tabla.length; i++) { for (int j = 0; j < tabla[i].length; j++) { System.out.print(tabla[i][j] + " | "); } System.out.println(); } } }
package com.trifulcas.saludo; import java.util.Scanner; public class EjemploMulti { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Pido el número de alumnos (alto de mi tabla multidimensional) System.out.println("Introduce el número de alumnos"); int alumnos = in.nextInt(); // Pido el número de notas (ancho de mi tabla multidimensional) System.out.println("Introduce el número de notas por alumno"); int numero = in.nextInt(); // Creo un array multidimensional con los datos que me han dado int[][] notas = new int[alumnos][numero]; // Para pedir los datos tengo que usar un bucle anidado // El primero (i) es de los alumnos // El segundo (j) es de las notas // La combinación (i,j) son las coordenadas de mi array bidimensional for (int i = 0; i < alumnos; i++) { System.out.println("Introduce las notas del alumno " + (i + 1)); for (int j = 0; j < numero; j++) { System.out.println("Introduce las nota " + (j + 1)); // Guardo la nota en la coordenada adecuada notas[i][j] = in.nextInt(); } } mostrar(notas); // Para cada alumno la nota más alta for (int i = 0; i < alumnos; i++) { System.out.print("La nota más alta del alumno " + (i + 1) + " es: "); int alta = 0; for (int j = 0; j < numero; j++) { if (alta < notas[i][j]) { alta = notas[i][j]; } // alta=Math.max(alta,notas[i][j]) } System.out.println(alta); } // Para cada alumno la media for (int i = 0; i < alumnos; i++) { System.out.print("La media de notas del alumno " + (i + 1) + " es: "); int suma = 0; for (int j = 0; j < numero; j++) { suma+=notas[i][j]; } System.out.println(suma/numero); } } static void mostrar(int[][] tabla) { // Es otro bucle anidado porque tengo dos dimensiones for (int i = 0; i < tabla.length; i++) { for (int j = 0; j < tabla[i].length; j++) { System.out.print(tabla[i][j] + " | "); } System.out.println(); } } }
Utilizando funciones:
package com.trifulcas.saludo; import java.util.Scanner; public class EjemploMulti { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Pido el número de alumnos (alto de mi tabla multidimensional) System.out.println("Introduce el número de alumnos"); int alumnos = in.nextInt(); // Pido el número de notas (ancho de mi tabla multidimensional) System.out.println("Introduce el número de notas por alumno"); int numero = in.nextInt(); // Creo un array multidimensional con los datos que me han dado int[][] notas = new int[alumnos][numero]; // Para pedir los datos tengo que usar un bucle anidado // El primero (i) es de los alumnos // El segundo (j) es de las notas // La combinación (i,j) son las coordenadas de mi array bidimensional for (int i = 0; i < alumnos; i++) { System.out.println("Introduce las notas del alumno " + (i + 1)); for (int j = 0; j < numero; j++) { System.out.println("Introduce las nota " + (j + 1)); // Guardo la nota en la coordenada adecuada notas[i][j] = in.nextInt(); } } mostrar(notas); // Para cada alumno la nota más alta for (int i = 0; i < alumnos; i++) { System.out.print("La nota más alta del alumno " + (i + 1) + " es: "); System.out.println(mayor(notas[i])); } // Para cada alumno la media for (int i = 0; i < alumnos; i++) { System.out.print("La media de notas del alumno " + (i + 1) + " es: "); System.out.println(media(notas[i])); } } static void mostrar(int[][] tabla) { // Es otro bucle anidado porque tengo dos dimensiones for (int i = 0; i < tabla.length; i++) { for (int j = 0; j < tabla[i].length; j++) { System.out.print(tabla[i][j] + " | "); } System.out.println(); } } static int mayor(int[] numeros) { int mayor=numeros[0]; for(int n:numeros) { if (n>mayor) { mayor=n; } } return mayor; } static int media(int[] numeros) { int suma=0; for(int n:numeros) { suma+=n; } return suma/numeros.length; } /* * notas[2][3] (2x3) * * |3 | 4 | 5 | * |2 | 6 | 10 | * * notas[0]=|3 | 4 | 5 | * notas[1]=|2 | 6 | 10 | * * notas[0] es un array normal de una dimensión * notas[1] es otro array de una dimensión * int[] foo=notas[0] */ }