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!
[code]
import java.util.*;
public class ex3 {
/**
* @param args
*/
public static void main(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.*/
double nota[][] = new double [5][3];
String media[] = new String[2];
int i,j,m;
double med;
Scanner dado = new Scanner(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");
}
}
}
}
}
} [/code]
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
[code] import java.util.*;
public class ex3 {
/**
* @param args
*/
public static void main(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.*/
double nota[][] = new double [5][3];
String media[] = new String[2];
int i,j,m;
double med;
Scanner dado = new Scanner(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");
}
}
}
}
} [/code]
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?
[code] import java.util.*;
public class ex3 {
/**
* @param args
*/
public static void main(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.*/
double nota[][] = new double [5][3];
String media[] = new String[2];
int i,j,m;
double med = 0;
Scanner dado = new Scanner(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");
}
else if(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");
}
}
}
}
}
}
[/code]
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.
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.
*/
public class ex3 {
public static void main(String[] args) {
double nota[][] = new double[5][3];
String media[] = new String[5];
Scanner in = new Scanner(System.in);
for (int i = 0; i < nota.length; i++) {
System.out.println("digite as notas dos alunos" + (i + 1));
for (int j = 0; j < 3; j++) {
System.out.println("notas da prova " + (j + 1));
nota[i][j] = Double.parseDouble(in.nextLine());
while (nota[i][j] > 10 || nota[i][j] < 0) {
System.out.println("nota inválida! digite novamente.");
nota[i][j] = Double.parseDouble(in.nextLine());
}
}
System.out.println("digite o tipo da média A-aritmédia e P-ponderada");
media[i] = in.nextLine().toLowerCase();
while (!(media[i].equals("p") || media[i].equals("a"))) {
System.out.println("média inválida! digite novamente.");
media[i] = in.nextLine();
}
}
for (int i = 0; i < nota.length; i++) {
double med = 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("A média do aluno %d foi %.01f. Situação: %s%n",
i, med, med > 7 ? "Aprovado" : "REPROVADO");
}