Olá pessoa! to com um probleminha aki, voltei a fazer exercicios de matiz pra dar uma treinada, só q acho q esqueci mesmo…
Tenho uma matriz q recebe 3 notas de 3 alunos, tenho q mostrar a média das notas deles,e não estou conseguindo calcular…
esse metodo recebe uma matriz double como parametro…Se puderem dar uam força agradeço!
Você quer a média de nota individual por aluno ou a média das notas dos três?
Em todo caso, você não pode fazer o cálculo da média dentro do for mais interno (linha 9 do seu código), porque precisa somar as três notas antes de calcular a média.
então, é por aluno mesmo, valeu a resposta! mas acho q tem algo errado, tah mostrando as medias e as somas iguais de todos!
veja meu codigo completo: eu digitei 8 7 6 8 7 6 8 7 6, de maneira q sempre o aluno vai ter a mesma nota nas 3 provas. a soma sempre dá 21 e a media 7…
publicstaticvoidmain(String[]args){inti=0;intras[]=obterNumerosDeRa();double[][]notas=obterNotasNasProvas();for(i=0;i<ras.length;i++){doublemedia=calcularMedia(notas,i);//int media=6;System.out.println(ras[i]);if(media>=7){System.out.println("Aprovado");}elseif(media>=4){System.out.println("Exame");}else{System.out.println("Reprovado");}}}publicstaticint[]obterNumerosDeRa(){inttam=3;Scannere=newScanner(System.in);intra[]=newint[tam];for(inti=0;i<tam;i++){System.out.println("Digite o "+(i+1)+"º RA: ");ra[i]=e.nextInt();}returnra;}publicstaticdouble[][]obterNotasNasProvas(){doublenots[][]=newdouble[3][3];inti=0,j=0;Scannere=newScanner(System.in);for(i=0;i<nots.length;i++){for(j=0;j<nots.length;j++){System.out.println("Digite a "+(i+1)+"º nota do "+(j+1)+"º aluno: ");nots[i][j]=e.nextDouble();}}returnnots;}publicstaticdoublecalcularMedia(double[][]notas,inti){intj=0;doublemedia=0,soma=0;for(i=0;i<3;i++){soma=0;media=0;for(j=0;j<3;j++){soma=soma+notas[i][j];}media=soma/3;}System.out.println(soma);System.out.println(media);returnmedia;}
abraço! valeu a ajuda…
TerraSkilll
Está meio confuso exibir a média em um método (calcularMedia) e a situação (aprovado ou não) em outro, mas vamos lá.
Seu método calcular média deve receber as notas de um aluno só, já que ele deve retornar a média somente de um aluno. Por isso, passe o vetor somente com as posições que interessam:
publicstaticvoidmain(String[]args){inti=0;intras[]=obterNumerosDeRa();double[][]notas=obterNotasNasProvas();for(i=0;i<ras.length;i++){doublemedia=calcularMedia(notas[i]);// note a diferença aqui: só passo o vetor de notas de um aluno, um vetor simples, não uma matrizSystem.out.println("Aluno RA: "+ras[i]+"\n");if(media>=7){System.out.println("Aprovado : media = "+media);// imprimindo a média para ficar mais claro}elseif(media>=4){System.out.println("Exame : media = "+media);// imprimindo a média para ficar mais claro}else{System.out.println("Reprovado : media = "+media);// imprimindo a média para ficar mais claro}}}publicstaticint[]obterNumerosDeRa(){inttam=3;Scannere=newScanner(System.in);intra[]=newint[tam];for(inti=0;i<tam;i++){System.out.println("Digite o "+(i+1)+"º RA: ");ra[i]=e.nextInt();}returnra;}publicstaticdouble[][]obterNotasNasProvas(){doublenots[][]=newdouble[3][3];inti=0,j=0;Scannere=newScanner(System.in);for(i=0;i<nots.length;i++){for(j=0;j<nots.length;j++){System.out.println("Digite a "+(i+1)+"º nota do "+(j+1)+"º aluno: ");nots[j][i]=e.nextDouble();// inverti aqui, pois fica mais fácil de calcular depois passando o vetor inteiro: antes era nots[i][j]=e.nextDouble();}}returnnots;}publicstaticdoublecalcularMedia(double[]notas){doublemedia=0,soma=0;// note a diferença daqui pra baixo for(inti=0;i<3;i++){soma=soma+notas[i];}media=soma/3;System.out.println(soma);//System.out.println(media);returnmedia;}
Abraço.
nathanRayden
Então TerraSkilll, eu preciso calcular a média dos 3 alunos,e mostrar a situação dos 3. no main vai mostrar : ra --> aprovado e a média…
fikei confuso…
OObrigado! se ainda puder ajudar…
asousaj
nathanRayden:
Então TerraSkilll, eu preciso calcular a média dos 3 alunos,e mostrar a situação dos 3. no main vai mostrar : ra --> aprovado e a média…
fikei confuso…
OObrigado! se ainda puder ajudar…
Sou novato(em java) também, não entendi 100% o que vc quer, mas vou tentar.
Aproveitando o codigo do TerraSkilll:
publicstaticvoidmain(String[]args){inti=0;intras[]=obterNumerosDeRa();double[][]notas=obterNotasNasProvas();for(i=0;i<ras.length;i++){double[]mediaSoma=calcularMediaSoma(notas[i]);doublemedia=mediaSoma[0];doublesoma=mediaSoma[1];if(media>=7){System.out.println("RA: "+ras[i]+"-- Aprovado , média = "+media+", soma = "+soma);}elseif(media>=4){System.out.println("RA: "+ras[i]+"-- Exame , média = "+media+", soma = "+soma);}else{System.out.println("RA: "+ras[i]+"-- Reprovado , média = "+media+", soma = "+soma);}}}publicstaticint[]obterNumerosDeRa(){inttam=3;Scannere=newScanner(System.in);intra[]=newint[tam];for(inti=0;i<tam;i++){System.out.println("Digite o "+(i+1)+"º RA: ");ra[i]=e.nextInt();}returnra;}publicstaticdouble[][]obterNotasNasProvas(){doublenots[][]=newdouble[3][3];inti=0,j=0;Scannere=newScanner(System.in);for(i=0;i<nots.length;i++){for(j=0;j<nots.length;j++){System.out.println("Digite a "+(i+1)+"º nota do "+(j+1)+"º aluno: ");nots[j][i]=e.nextDouble();}}returnnots;}publicstaticdouble[]calcularMediaSoma(double[]notas){doublemedia=0,soma=0;double[]valores=newdouble[2];for(inti=0;i<3;i++){soma=soma+notas[i];}media=soma/3;valores[0]=media;valores[1]=soma;returnvalores;}
Testa ai
nathanRayden
então brother, do jeito que vc fez funciona perfeitamente!! o problema é que tenho q usar essa bendita matriz…vou dar uma tentada aki… o prblema é qndo uso matriz ele parece que pega a soma de uma coluna só, ou só de um aluno… tem que ter uma maneira de fazer isso com matriz…
Mas muito obrigado! valeu a ajuda!
TerraSkilll
Você executou o código que passei e o do asousaj? Porque, se o que fizemos faz o que você quer, então não entendi o que você precisa. Os dois códigos usam a matriz, então qual a dificuldade?
Abraço.
nathanRayden
sim sim, executei sim, so que no exercio pede que meu Main esteja como eu mandei…
e nao consigo fazer isso recebendo notas[], ou notas[][], e mandar a media no return. aé executa, mas manda valores iguais pra todo mundo…
asousaj
Tem de ser exatamente como está? Não pode mudar nadinha?
Seja mais claro, diga o que tem de ser mantido só assim alguem poderá lhe ajudar.
Falow!
nathanRayden
Então feras, só o metodo MAIN não pode ser alterado…desculpe a falta de clareza…
O por isso q não da pra mim receber notas[], pq ele espera notas[][]…Desculpe a amolação gente…
asousaj
Brother vamos aos fatos
Ter saída "RA -> aprovado - Média " como vc disse e[color=red] sem alterar uma linha da sua MAIN[/color] , infelizmente eu não vejo como. Posso estar errado é claro.
[size=18]
Acho que esse agora te atende, testa ai e responde, tinha uma falha no metodo da média q vc testou[/size]
publicstaticvoidmain(String[]args){inti=0;intras[]=obterNumerosDeRa();double[][]notas=obterNotasNasProvas();for(i=0;i<ras.length;i++){doublemedia=calcularMedia(notas,i);// int media=6;System.out.println(ras[i]);if(media>=7){System.out.println("Aprovado");}elseif(media>=4){System.out.println("Exame");}else{System.out.println("Reprovado");}}}publicstaticint[]obterNumerosDeRa(){inttam=3;Scannere=newScanner(System.in);intra[]=newint[tam];for(inti=0;i<tam;i++){System.out.println("Digite o "+(i+1)+"º RA: ");ra[i]=e.nextInt();}returnra;}publicstaticdouble[][]obterNotasNasProvas(){doublenots[][]=newdouble[3][3];inti=0,j=0;Scannere=newScanner(System.in);for(i=0;i<nots.length;i++){for(j=0;j<nots.length;j++){System.out.println("Digite a "+(i+1)+"º nota do "+(j+1)+"º aluno: ");nots[i][j]=e.nextDouble();}}returnnots;}publicstaticdoublecalcularMedia(double[][]notas,inti){doublemedia=0,soma=0;for(intj=0;j<3;j++){soma=soma+notas[j][i];}media=soma/3;System.out.println("\n\nSoma: "+soma);System.out.println("Média: "+media);returnmedia;}
nathanRayden
Obrigado asousaj e TerraSkilll pela força! asousaj, esse ultimo funcionou certinho!!! se não fosse tão longe eu pagava uma cerva pra nos !!
Eternamente grato! abraço!