Como fazer com que o vetor seja repetido

import java.util.Scanner;
public class Main
{
	public static void main(String[] args) {
	    Scanner sc = new Scanner(System.in);
		String disc[] = {"Matemática", "Matemática", "Português", "Português", "Historia", "Historia", "Geografia","Geografia", "Fisica", "Fisica", "Química", "Química"};
	    int[] notas = new int[12];
	    float media = 0;
		
		for (int i=0; i<12; i++){
		    
		    System.out.printf("\nDigite a %d nota de %s: ", i+1, disc[i]);
		    notas[i] = sc.nextInt();
		    
		    media = (notas[0] + notas[1]) / 2;
		}
		System.out.printf("Media: %.2f", media);
	}
}

Como faço para os vetores aparecerem repetido?
por exemplo:

“Digite a 1º nota de matemática”
“Digite a 2º nota de matemática”

Depois ele reinicia para 1 novamente:

“Digite a 1º nota de português”
“Digite a 2º nota de português”

Não precisa repetir os nomes das disciplinas. Basta fazer um for dentro do outro:

  • para cada disciplina (aqui é um for no array de disciplinas)
    • faça um for pela quantidade de notas
    • calcule a média

Outra coisa, você quer guardar todas as notas, ou só quer calcular a média?

Se for somente para calcular a média, nem precisa do array de notas. E por que as notas são int? Ninguém pode tirar 7,5 ou 8,75? Eu mudaria para double, afinal a média pode ser “quebrada”, então por que as notas não podem?

Enfim, ficaria assim:

Scanner sc = new Scanner(System.in);
String disciplinas[] = {"Matemática", "Português", "História", "Geografia", "Física", "Química"};
int qtdNotas = 2; // cada disciplina tem 2 notas

// para cada disciplina, leia a quantidade de notas
for (String disc : disciplinas) {
    double soma = 0; // soma as notas desta disciplina, para calcular a média no final
    for (int i = 1; i <= qtdNotas; i++) { // ler as notas desta disciplina
        System.out.printf("Digite a %dª nota de %s: ", i, disc);
        soma += sc.nextDouble();
    }
    // se só quer imprimir a média e nada mais, nem precisa de variável, pode calcular direto e passar para o print
    System.out.printf("Média: %.2f\n", soma / qtdNotas);
}
1 curtida