Onde esta o erro?

2 respostas
B
import javax.swing.JOptionPane;
public class trabalhopoo {
	private static String nome;

	public static void main(String[] args) {
		String []gabaofi = new String [11];
		int i=1,j=1,k=1,certo=0,erra=0;
		int pa=0,pr=0,maior=0;
		String n=null;
		do{
			n=JOptionPane.showInputDialog(null,"INFORME AS QUESTOES DO GABARITO OFICIAL");
			gabaofi[i]= n;
			i=i+1;		
		}while(i<=10);
		n=JOptionPane.showInputDialog("QUANTOS ALUNOS SERAM CADASTRADOS");
		j=Integer.parseInt(n);
		String []nomealu = new String[j+1];
		String [][] notaalu= new String[j+1][11];
		do{
			n=JOptionPane.showInputDialog(null,"INFORME O NOME DO ALUNO");
			nomealu[k]=n;
			for(int l=1;l<=10;l++)
			   notaalu[k][l]=JOptionPane.showInputDialog("INFORME AS RESPOSTA DA PROVA");
		   k=k+1;
		}while(k<=j);
		k=1;i=1;
		do{
			for(int a=1;a<=j;a++){
               for(int b=1;b<=10;b++)			
			         if(notaalu[a][b]==gabaofi[b])
				          certo=certo+1;
			            else
				          erra=erra+1;
			          if(certo>=6){
		            	System.out.println(nomealu[i]+certo+" APROVADO");
		            	   pa=pa+1;}
		            	else{
		            	 System.out.println(nomealu[i]+certo+" REPROVADO"); 
		            	 pr=pr+1;}  
	                       if(certo>maior){
	                    	   maior=certo;
	                           nome=nomealu[i];}}
	     k=k+1;
	     i=i+1;
		}while(k<=j);
	System.out.println("TOTAL DE ALUNOS APROVADO: "+pa);
	System.out.println("TOTAL DE ALUNOS REPROVADO: "+pr);
	System.out.println("PORCENTAGEM DE ALUNOS APROVADO: "+pa/j);
	System.out.println("PORCENTAGEM DE ALUNOS REPROVADO: "+pr/j);
	System.out.printf("O ALUNO COM MAIOR NOTA NA SALA É: "+nome,"NOTA"+maior);
	}
}

onde esta o erro ..... sempre q roda o progama somente imprime reprovados..........

GRATO

2 Respostas

BrunoBastosPJ

Dando uma olhada rápida vi que nessa linha

if (notaalu[a][b] == gabaofi[b]) {

Você está tentando comprar Strings usando o operador ==

Quando você trabalha com comparação de objetos String você tem que chamar o método equals, modifique o código para

if (notaalu[a][b].equals(gabaofi[b])) {

E faça os testes :wink:

Abs

B
import javax.swing.JOptionPane;
public class trabalhopoo {
	@SuppressWarnings("unused")
	private static String nome;

	public static void main(String[] args) {
		String []gabaofi = new String [11];
		int i=1,j=1,k=1,certo=0,erra=0;
		int pa=0,pr=0,maior=0;
		String n=null;
		do{
			n=JOptionPane.showInputDialog(null,"INFORME AS QUESTOES DO GABARITO OFICIAL");
			gabaofi[i]= n;
			i=i+1;		
		}while(i<=10);
		n=JOptionPane.showInputDialog("QUANTOS ALUNOS SERAM CADASTRADOS");
		j=Integer.parseInt(n);
		String []nomealu = new String[j+1];
		String [][] notaalu= new String[j+1][11];
		do{
			n=JOptionPane.showInputDialog(null,"INFORME O NOME DO ALUNO");
			nomealu[k]=n;
			for(int l=1;l<=10;l++)
			   notaalu[k][l]=JOptionPane.showInputDialog("INFORME AS RESPOSTA DA PROVA");
		   k=k+1;
		}while(k<=j);
		k=1;
		do{
			for(int a=1;a<=j;a++){
                   certo=0;erra=0;           
				for(int b=1;b<=10;b++)			
			         if(notaalu[a][b].equals(gabaofi[b]))
				          certo=certo+1;
			            else
				          erra=erra+1;
			          if(certo>=6){
		            	System.out.println(nomealu[k]+certo+" APROVADO");
		            	   pa=pa+1;}
		            	else{
		            	 System.out.println(nomealu[k]+certo+" REPROVADO"); 
		            	 pr=pr+1;}  
	                       if(certo>maior){
	                    	   maior=certo;
	                           nome=nomealu[k];}
	     k=k+1;}
		}while(k<=j);
	System.out.println("TOTAL DE ALUNOS APROVADO: "+pa);
	System.out.println("TOTAL DE ALUNOS REPROVADO: "+pr);
	System.out.println("PORCENTAGEM DE ALUNOS APROVADO: "+pa/j);
	System.out.println("PORCENTAGEM DE ALUNOS REPROVADO: "+pr/j);
	System.out.println("O ALUNO COM MAIOR NOTA NA SALA É: "+nome+maior);
	}
}

fiz a alteração e deu certo .... alguem teria uma ideia de melhor esse codigo...como fasso o calculo de porcentagem...seria o numero de alunos aprovados dividido pelo numero de alunos inscritos,mas apenas isso q fiz no codigo em cima....queria usar % na saida...
vlw pela ajuda
grato

Criado 2 de abril de 2008
Ultima resposta 2 de abr. de 2008
Respostas 2
Participantes 2