[code]public class mediaAlunos
public static void main (String args [])
int n1 = 5;
int n2 = 7;
int n3 = 8;
int media;
if ( n1 <= 5) {
n1 = 0;
} if ( n2 <= 5) {
n2 = 0;
} if (n3 <= 5) {
n3 = 0;
}
media = ( n1 + n2 + n3 / 3);
if (media >= 10 ) && (media <= 9 ); {
System.out.println("Conceito A");
}
if (media >= 8 ) && (media < 9 ) {
System.out.println("Conceito B");
}
if (media >= 5 ) && (media <= 7 ) {
System.out.println("Conceito C");
} else {
System.out.println("Reprovado");
}
}
}[/code]
opa, so iniciante nesse mundo java, queria que vcs me dessem uma luz nesse exercicio simples
Escrevi esse codigo mas encontra 19 erros no algoritmo, depois da soma das medias, o que estou de fazendo de errado?
Agradeço se responderem :thumbup:
Valeu
Erro na expressão, no caso a divisão ocorrerá primeiro, isso altera o resultado esperado.
media = ( n1 + n2 + n3 / 3);
Correto
media = ( n1 + n2 + n3) / 3;
Esse erro tem um [color=red] ;[/color] e falta o b[/b], é só colocar ou tirar.
if (media >= 10 ) && (media <= 9 ); {
Você pode fazer
if ((media >= 10 ) && (media <= 9 )) {
ou
Você pode fazer
if (media >= 10 && media <= 9 ) {
Tem outros com esse mesmo erro
Um outro error é que ao dividir um valor o resultado é um valor real, altere de int media; para double media; ou faça um cast media = (int)( n1 + n2 + n3) / 3;, nesse caso pode as casas decimal.
Obrigado galerinha do mal, tava pensando que o erro era nos IFS e else que nao dei atenção ao resto :oops:
EDIT: Executei pra ver no que dava, minha média somada e dividida por 3 deu 5, intao era pra cair no conceito C
mas apareceu Conceito A e conceito C, quando eu executei, alguem poderia me explicar pq aconteceu isso ?
como ficou depois da ajuda de vcs:
[code]public class mediaAlunos {
public static void main (String args []) {
int n1 = 5;
int n2 = 7;
int n3 = 8;
double media;
if ( n1 <= 5) {
n1 = 0;
} if ( n2 <= 5) {
n2 = 0;
} if (n3 <= 5) {
n3 = 0;
}
media = ( n1 + n2 + n3) /3;
if (media >= 10 && media <= 9 ) {
System.out.println("Conceito A");
}
if (media >= 8 && media < 9 ) {
System.out.println("Conceito B");
}
if (media >= 5 && media <= 7 ) {
System.out.println("Conceito C");
} else {
System.out.println("Reprovado");
}
}
}[/code]
depois vo fazer com que ele faça leitura de teclado e tals
tira esse ponto e virgula no final.
e repare no que esta fazendo na condição media >= 10 esta errado tem que ser media <= 10.
olha outro erro media <= 9 tem que ser media >= 9 então ficaria if(media >= 9 && media <= 10)
Vamos recapitular um conceito de LÓGICA ou MATEMÁTICA.
code - //Todos os numeros maiores que ‘y’, não incluindo o mesmo.
(x<y) - //Todos os numeros menores que ‘y’, não incluindo o mesmo.
(x==y) - //‘x’ igual a ‘y’.
(x>=1 && x<=5) //Todos os numeros entre ‘1’ e ‘5’ incluindo os mesmos.
(x<=1 || x>=5) //Todos os números menos que ‘1’ ou maiores que ‘5’, ou seja, nenhum numero entre ‘1’ e ‘5’ se encaixa.
(x<=1 && x>=5) //CONDIÇÃO ERRADA, não existe um numero menor que 1 e maior que 5!!!
(x>=1 || x<=5) //Não está errado, mas é a mesma coisa que dizer todos os ‘x’ pertencentes ao Real, ou seja, qualquer numero.
[/code]
Espero ter ajudado,