dúvida algoritmo

[code]/*Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas. Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores.

Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada.

Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada). Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p. Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada. Os pesos da média ponderada são: 2, 3 e 10.

Mostre:

a) O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
b) A média de todos os alunos juntos em cada prova
c) A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
d) A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.
*/

import java.util.*;
public class exercicio3 {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
 Scanner dado = new Scanner(System.in);
 
 double nota[][] = new double [5][3];
 String tipomedia[] = new String[1];
 double media = 0;
 double mediatotal = 0,medtotal = 0,medtot = 0;
 for (int i = 0; i <=4; i++) {
	 System.out.println("\ndigite as notas do aluno: "+(i+1));
	 for (int j = 0; j <=2; j++) {
	 System.out.println("digite as notas da prova: "+(j+1));
	 nota[i][j] = dado.nextDouble();
	 while(nota[i][j] > 10 || nota[i][j] < 0){
 		System.out.println("nota inválida! Digite novamente");
 	      nota[i][j] = dado.nextDouble();
 }
	 }
	 
	for (int j = 0; j < tipomedia.length; j++) {
		System.out.println("digite o tipo da média A- aritmética P- Ponderada");
		tipomedia[j] = dado.next();
		  while (!(tipomedia[j].equalsIgnoreCase("p") || tipomedia[j].equalsIgnoreCase("a"))) {  
              System.out.println("média inválida! digite novamente.");  
              tipomedia[j] = dado.next();  
	}
		  if(tipomedia[j].equalsIgnoreCase("p")){
			  media = (nota[i][0]*2+nota[i][1]*3+ nota[i][2]*10)/15;
			  System.out.println("o tipo de média foi ponderada a média é "+media);
		}
		 if(tipomedia[j].equalsIgnoreCase("a")){
			  media = (nota[i][0]+nota[i][1]+nota[i][2])/3;
			  System.out.println("o tipo de média foi aritmética a média é "+media);
		  }
		 if(media >= 7){
			 System.out.println("o aluno está APROVADO");
		 }
		 if(media < 7){
			 System.out.println("o aluno está REPROVADO");
		 }

}

}
for (int i = 0; i <=4; i++) {
mediatotal += (nota[i][0])/5;
System.out.println("\na média foi “+mediatotal+” na prova 1");
medtotal += (nota[i][1])/5;
System.out.println("\na média foi “+medtotal+” na prova 2");
medtot += (nota[i][2])/5;
System.out.println("\na média foi “+medtot+” na prova 3");
}
}
}
[/code]

eu fiz a letra b) alguém pode me ajudar a fazer de um jeito mais prático obrigado!

esse seu ultimo for ta errado,

vc vai ter que fazer um for que faça o seguinte
vai passar por todos os alunos e somar as notas da mesma prova e qdo finalizar o for fazer a media

e com esse for que vc vai fazer, vc consegue resolve a letra C e D… :smiley:

t+

como eu somo as notas da mesma prova?

me mostra o q esta errado no for ali?

vo te ajudar no seu exercio e vc vai ter que falar para seu professor dividar a nota comigo…rs

double mediatotal[] = new double[3];
		for (int i = 0; i <= 4; i++) {
			mediatotal[0] += (nota[i][0]);
			mediatotal[1] += (nota[i][1]);
			mediatotal[2] += (nota[i][2]);
		}
		
		System.out.println("Media na prova 1"+mediatotal[0]/5);
		System.out.println("Media na prova 2"+mediatotal[1]/5);
		System.out.println("Media na prova 3"+mediatotal[2]/5);

t+

eu estou precisando d ajuda pq ta dificil me da um exemplo naquele for q esta errado como deveria ficar se puder me ajudar eu agradeço obrigado!

obrigadoo eu vou tenta fazer o maior e o menor agora e o empate rs

no mesmo0 for eu faço o maior e o menor??

me ajuda nessas duas ultimas letras?

[code]/*Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas. Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores.

Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada.

Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada). Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p. Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada. Os pesos da média ponderada são: 2, 3 e 10.

Mostre:

a) O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
b) A média de todos os alunos juntos em cada prova
c) A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
d) A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.
*/

import java.util.*;
public class exercicio3 {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
 Scanner dado = new Scanner(System.in);
 
 double nota[][] = new double [5][3];
 double mediatotal[] = new double[3];  
 String tipomedia[] = new String[1];
 double media = 0;
 double maior = 0,menor = 0,np = 0;
 for (int i = 0; i <=4; i++) {
	 System.out.println("\ndigite as notas do aluno: "+(i+1));
	 for (int j = 0; j <=2; j++) {
	 System.out.println("digite as notas da prova: "+(j+1));
	 nota[i][j] = dado.nextDouble();
	 while(nota[i][j] > 10 || nota[i][j] < 0){
 		System.out.println("nota inválida! Digite novamente");
 	      nota[i][j] = dado.nextDouble();
 }
	 }
	 
	for (int j = 0; j < tipomedia.length; j++) {
		System.out.println("digite o tipo da média A- aritmética P- Ponderada");
		tipomedia[j] = dado.next();
		  while (!(tipomedia[j].equalsIgnoreCase("p") || tipomedia[j].equalsIgnoreCase("a"))) {  
              System.out.println("média inválida! digite novamente.");  
              tipomedia[j] = dado.next();  
	}
		  if(tipomedia[j].equalsIgnoreCase("p")){
			  media = (nota[i][0]*2+nota[i][1]*3+ nota[i][2]*10)/15;
			  System.out.println("o tipo de média foi ponderada a média é "+media);
		}
		 if(tipomedia[j].equalsIgnoreCase("a")){
			  media = (nota[i][0]+nota[i][1]+nota[i][2])/3;
			  System.out.println("o tipo de média foi aritmética a média é "+media);
		  }
		 if(media >= 7){
			 System.out.println("o aluno está APROVADO");
		 }
		 if(media < 7){
			 System.out.println("o aluno está REPROVADO");
		 }
	}
		
	 }  
 for (int i = 0; i <= 4; i++) {  
     mediatotal[0] += (nota[i][0]);  
     mediatotal[1] += (nota[i][1]);  
     mediatotal[2] += (nota[i][2]);  
 }
   
 System.out.println("\nMedia na prova 1 "+mediatotal[0]/5);  
 System.out.println("Media na prova 2 "+mediatotal[1]/5);  
 System.out.println("Media na prova 3 "+mediatotal[2]/5);  


for (int i=0;i<5;i++)
{
  maior = nota[i][0];
  np=0;
	for (int j=0;j<3;j++)
	{
		if (nota[i][j] > maior)
		{
			maior = nota[i][j];
			np=j;
		}
		
	}	
	System.out.println("\nMaior nota do " +(i+1)+ "º Aluno = " +maior );
	System.out.println(" Na prova  "+ (np+1));
}

//letra d

for (int j=0;j<5;j++)
{
	menor = nota[0][j];
  np=0;
	for (int i=0;i<5;i++)
		{
		if (nota[i][j] < menor)
		{
			menor = nota[i][j];
			np=i;
		}if (menor == nota[i][j]) { 
			System.out.println("empatou com " + (i + 1));  
	}	
	System.out.println("\nMenor nota na " +(j+1)+ "ª Prova = " +menor );
	System.out.println(" Do aluno  "+ (np+1));
}

}
}
}
[/code]

cara,

eu acabei esse seu exercicio, mas não comentei o codigo para que vc estude ele e ver o que está acontecendo.

/*Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas. Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores.

 Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada. 

 Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada). Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p. Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada. Os pesos da média ponderada são: 2, 3 e 10.

 Mostre:

 a)	O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
 b)	A média de todos os alunos juntos em cada prova
 c)	A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
 d)	A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.
 */

import java.util.*;

public class exercicio3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner dado = new Scanner(System.in);

		double nota[][] = new double[5][3];
		String tipomedia[] = new String[1];
		double media = 0;
		for (int i = 0; i <= 4; i++) {
			System.out.println("\ndigite as notas do aluno: " + (i + 1));
			for (int j = 0; j <= 2; j++) {
				System.out.println("digite as notas da prova: " + (j + 1));
				nota[i][j] = dado.nextDouble();
				while (nota[i][j] > 10 || nota[i][j] < 0) {
					System.out.println("nota inválida! Digite novamente");
					nota[i][j] = dado.nextDouble();
				}
			}

			for (int j = 0; j < tipomedia.length; j++) {
				System.out.println("digite o tipo da média A- aritmética P- Ponderada");
				tipomedia[j] = dado.next();
				while (!(tipomedia[j].equalsIgnoreCase("p") || tipomedia[j].equalsIgnoreCase("a"))) {
					System.out.println("média inválida! digite novamente.");
					tipomedia[j] = dado.next();
				}
				if (tipomedia[j].equalsIgnoreCase("p")) {
					media = (nota[i][0] * 2 + nota[i][1] * 3 + nota[i][2] * 10) / 15;
					System.out.println("o tipo de média foi ponderada a média é "+ media);
				}else if (tipomedia[j].equalsIgnoreCase("a")) {
					media = (nota[i][0] + nota[i][1] + nota[i][2]) / 3;
					System.out.println("o tipo de média foi aritmética a média é "+ media);
				}
				
				if (media >= 7) {
					System.out.println("o aluno está APROVADO");
				}else {
					System.out.println("o aluno está REPROVADO");
				}
			}
		}
		
		double mediatotal[] = new double[3];
		
		Object maiorNotaAluno[][] = new Object[5][1];
		double maiorNota[][];
		
		Object menorNota[] = new Object[3];
		Object menorNotaProva1[][] = new Object[5][2];
		Object menorNotaProva2[][] = new Object[5][2];
		Object menorNotaProva3[][] = new Object[5][2];
		
		int contadorMenorProva1 = 0;
		int contadorMenorProva2 = 0;
		int contadorMenorProva3 = 0;
		
		double menorNota1 = nota[0][0];
		double menorNota2 = nota[0][1];
		double menorNota3 = nota[0][2];
		
		for (int i = 0; i <= 4; i++) {
			maiorNota = new double[1][2];
			
			mediatotal[0] += nota[i][0];
			mediatotal[1] += nota[i][1];
			mediatotal[2] += nota[i][2];
			
			if(maiorNota[0][1] < nota[i][0]){
				maiorNota[0][0] = 1;
				maiorNota[0][1] = nota[i][0];
				
				maiorNotaAluno[i][0] = maiorNota;
			}
			
			if(maiorNota[0][1] < nota[i][1]){
				maiorNota[0][0] = 2;
				maiorNota[0][1] = nota[i][1];
				
				maiorNotaAluno[i][0] = maiorNota;
			}
			
			if(maiorNota[0][1] < nota[i][2]){
				maiorNota[0][0] = 3;
				maiorNota[0][1] = nota[i][2];
				
				maiorNotaAluno[i][0] = maiorNota;
			}
			
			if(menorNota1 >= nota[i][0]){
				menorNota1 = nota[i][0];
			}
			
			if(menorNota2 >= nota[i][1]){
				menorNota2 = nota[i][1];
			}
			
			if(menorNota3 >= nota[i][2]){
				menorNota3 = nota[i][2];
			}
		}
		
		for (int i = 0; i <= 4; i++) {
			if(menorNota1 == nota[i][0]){
				menorNotaProva1[contadorMenorProva1][0] = (i+1);
				menorNotaProva1[contadorMenorProva1++][1] = nota[i][0];
				menorNota[0] = menorNotaProva1;
			}
			
			if(menorNota2 == nota[i][1]){
				menorNotaProva2[contadorMenorProva2][0] = (i+1);
				menorNotaProva2[contadorMenorProva2++][1] = nota[i][1];
				menorNota[1] = menorNotaProva2;
			}
			
			if(menorNota3 == nota[i][2]){
				menorNotaProva3[contadorMenorProva3][0] = (i+1);
				menorNotaProva3[contadorMenorProva3++][1] = nota[i][2];
				menorNota[2] = menorNotaProva3;
			}
		}
		
		System.out.println("Media na prova 1 = "+mediatotal[0]/5);
		System.out.println("Media na prova 2 = "+mediatotal[1]/5);
		System.out.println("Media na prova 3 = "+mediatotal[2]/5);
		
		System.out.println("");
		
		for (int i = 0; i <= 4; i++) {
			maiorNota = (double[][]) maiorNotaAluno[i][0];
			System.out.println("Maior nota aluno "+(i+1)+" é "+maiorNota[0][1]+" na prova "+ (int)maiorNota[0][0]);
		}
		
		System.out.println("");
		
		for(int i = 0; i <= 2; i++){
			Object menorNotaProva[][] = (Object[][])menorNota[i];
			for(int j = 0; j <= 4; j++){
				if(menorNotaProva[j][0] != null){
					System.out.println("Menor nota prova "+(i+1)+" é "+menorNotaProva[j][1]+" do aluno "+menorNotaProva[j][0]);
				}
			}
		}
	}
}

t+

obrigadooo eu vou tentar entender o q vc fezz brigadao!