estou tentando resolver este algoritmo mais ele não esta funcionando pelo q pede na letra a ele mostra resultado só de um aluno em vez de mostrar de todos são cinco alunos e 3 notas de provas obrigado alguém pode ajudar!
importjava.util.*;publicclassex3{/** * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stub /* 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.*/doublenota[][]=newdouble[5][3];Stringmedia[]=newString[2];inti,j,m;doublemed;Scannerdado=newScanner(System.in);for(i=0;i<5;i++){System.out.println("digite as notas dos alunos"+(i+1));for(j=0;j<3;j++){System.out.println("notas da prova "+(j+1));nota[i][j]=dado.nextDouble();if(nota[i][j]>10||nota[i][j]<0){System.out.println("nota inválida");System.out.println("digite novamente");nota[i][j]=dado.nextDouble();}else{System.out.println("nota válida");}}for(m=0;m<5;m++){System.out.println("digite o tipo da média A-aritmédia e P-ponderada");media[m]=dado.next();if(media[m].equalsIgnoreCase("p")||media[m].equalsIgnoreCase("A")){System.out.println("media válida");break;}else{System.out.println("média inválida");System.out.println("digite novamente");}}for(i=0;i<1;i++){for(j=0;j<1;j++){if(media[m].equalsIgnoreCase("p")){med=(nota[i][j]*2+nota[i][j]*3+nota[i][j]*10)/15;System.out.println("a média foi "+med);}else{med=(nota[i][j]+nota[i][j]+nota[i][j])/3;System.out.println("a média foi "+med);}if(med>7){System.out.println("aluno aprovado");}else{System.out.println("aluno reprovado");}}}}}}
ja conferi ja tentei por td qualquer numero ele nao da certo
ViniGodoy
Tem vários problemas:
O for da linha 60 deveria mesmo ir até i<5;
No if da linha 62, você usa media[m]. Que valor tem "m" nesses fors?
Não é necessário o for da linha 61.
O calculo da média ponderada, na linha 63, está errado. Retire o [j] dali e substitua pelo número da nota correspondente;
Corrija a indentação do seu código.
D
daniferreira
o resultado q deu foi esse
digite as notas dos alunos1
notas da prova 1
3
nota válida
notas da prova 2
4
nota válida
notas da prova 3
5
nota válida
digite o tipo da média A-aritmédia e P-ponderada
p
media válida
a média foi 4.533333333333333
aluno reprovado
a média foi 0.0
aluno reprovado
a média foi 0.0
aluno reprovado
a média foi 0.0
aluno reprovado
a média foi 0.0
aluno reprovado
usando este codigo aqui
importjava.util.*;publicclassex3{/** * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stub /* 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.*/doublenota[][]=newdouble[5][3];Stringmedia[]=newString[2];inti,j,m;doublemed;Scannerdado=newScanner(System.in);for(i=0;i<5;i++){System.out.println("digite as notas dos alunos"+(i+1));for(j=0;j<3;j++){System.out.println("notas da prova "+(j+1));nota[i][j]=dado.nextDouble();if(nota[i][j]>10||nota[i][j]<0){System.out.println("nota inválida");System.out.println("digite novamente");nota[i][j]=dado.nextDouble();}else{System.out.println("nota válida");}}for(m=0;m<5;m++){System.out.println("digite o tipo da média A-aritmédia e P-ponderada");media[m]=dado.next();if(media[m].equalsIgnoreCase("p")||media[m].equalsIgnoreCase("A")){System.out.println("media válida");break;}else{System.out.println("média inválida");System.out.println("digite novamente");}}for(i=0;i<5;i++){//for(j=0;j<1;j++){ if(media[m].equalsIgnoreCase("p")){med=(nota[i][0]*2+nota[i][1]*3+nota[i][2]*10)/15;System.out.println("a média foi "+med);}else{med=(nota[i][0]+nota[i][1]+nota[i][2])/3;System.out.println("a média foi "+med);}if(med>7){System.out.println("aluno aprovado");}else{System.out.println("aluno reprovado");}}}}}
D
daniferreira
resultado
digite as notas dos alunos1
notas da prova 1
5
nota válida
notas da prova 2
6
nota válida
notas da prova 3
7
nota válida
digite o tipo da média A-aritmédia e P-ponderada
p
digite as notas dos alunos1
a média foi 6.533333333333333
media válida
aluno reprovado
digite as notas dos alunos2
a média foi 0.0
media válida
aluno reprovado
digite as notas dos alunos3
a média foi 0.0
media válida
aluno reprovado
digite as notas dos alunos4
a média foi 0.0
media válida
aluno reprovado
digite as notas dos alunos5
a média foi 0.0
media válida
aluno reprovado
digite o tipo da média A-aritmédia e P-ponderada
codigo
creio q tenha alguma coisa no for q esteja errado mais nao estou enxergando
view plaincopy to clipboardprint?
importjava.util.*;publicclassex3{/** * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stub /* 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.*/doublenota[][]=newdouble[5][3];Stringmedia[]=newString[2];inti,j,m;doublemed=0;Scannerdado=newScanner(System.in);for(i=0;i<5;i++){System.out.println("digite as notas dos alunos"+(i+1));for(j=0;j<3;j++){System.out.println("notas da prova "+(j+1));nota[i][j]=dado.nextDouble();if(nota[i][j]>10||nota[i][j]<0){System.out.println("nota inválida");System.out.println("digite novamente");nota[i][j]=dado.nextDouble();}else{System.out.println("nota válida");}}for(m=0;m<5;m++){System.out.println("digite o tipo da média A-aritmédia e P-ponderada");media[m]=dado.next();for(i=0;i<5;i++){System.out.println("digite as notas dos alunos"+(i+1));if(media[m].equalsIgnoreCase("p")){med=(nota[i][0]*2+nota[i][1]*3+nota[i][2]*10)/15;System.out.println("a média foi "+med);System.out.println("media válida");}elseif(media[m].equalsIgnoreCase("A")){med=(nota[i][0]+nota[i][1]+nota[i][2])/3;System.out.println("a média foi "+med);}else{System.out.println("média inválida");System.out.println("digite novamente");}if(med>7){System.out.println("aluno aprovado");}else{System.out.println("aluno reprovado");}}}}}}
ViniGodoy
Termine de fazer as correções que sugeri. A linha 62 do código ainda está errada e a indentação também.
Assim que corrigir isso, você vai conseguir enxergar o erro.
D
daniferreira
eu ja consegui fazer a letra a brigadaoo!
ViniGodoy
Beleza. Então essa seria a forma que eu faria:
packagebr.com.guj;importjava.util.*;/** * 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. */publicclassex3{publicstaticvoidmain(String[]args){doublenota[][]=newdouble[5][3];Stringmedia[]=newString[5];Scannerin=newScanner(System.in);for(inti=0;i<nota.length;i++){System.out.println("digiteasnotasdosalunos"+(i+1));for(intj=0;j<3;j++){System.out.println("notasdaprova"+(j+1));nota[i][j]=Double.parseDouble(in.nextLine());while(nota[i][j]>10||nota[i][j]<0){System.out.println("notainválida!digitenovamente.");nota[i][j]=Double.parseDouble(in.nextLine());}}System.out.println("digiteotipodamédiaA-aritmédiaeP-ponderada");media[i]=in.nextLine().toLowerCase();while(!(media[i].equals("p")||media[i].equals("a"))){System.out.println("médiainválida!digitenovamente.");media[i]=in.nextLine();}}for(inti=0;i<nota.length;i++){doublemed=media[i].equals("p")?(nota[i][0]*2+nota[i][1]*3+nota[i][2]*10)/15:(nota[i][0]+nota[i][1]+nota[i][2])/3;System.out.printf("Amédiadoaluno%dfoi%.01f.Situação:%s%n",i,med,med>7?"Aprovado":"REPROVADO");}}}