Dúvidas em Vetores e Matrizes

1 resposta
J

Pessoal o código abaixo é para uma questao que pede para exibir o maior e o menor valor de um vetor. O que ocorre é que o menor valor sempre me retorna 0…

O que está errado?

public class questao1 {
	
	public static void main(String [] args){
		
		int num[] = new int[5];
		int maior=0, menor=0;
		maior = num[0];
		menor = num[0];
		for(int i=0; i < num.length; i++){
			System.out.println("Informe o "+(i+1)+ " número:");
			num[i] = ler (num[i]);
			}
		for (int i=0; i<num.length; i++){
			if (num[i] > maior)
				maior = num[i];
			if (num[i] < menor)
				menor = num[i];
		}
		System.out.println("O maior número é: "+maior);
		System.out.println("O menor número é: "+menor);

}
//ler - ( BYTE )
public static byte ler ( byte x ) {
	String valor="";
	DataInputStream in = new DataInputStream(System.in);
	try{
 valor=in.readLine();
 x= Byte.valueOf(valor).byteValue();
	   }
	catch(Exception e) {System.out.println("ERRO");}
	return (x);
}		

//ler - ( SHORT )
public static short ler ( short x ) {
	String valor="";
	DataInputStream in = new DataInputStream(System.in);
	try{
 valor=in.readLine();
 x= Short.valueOf(valor).shortValue();
	   }
	catch(Exception e) {System.out.println("ERRO");}
	return (x);
}		

//ler - ( INT )
public static int ler ( int x ) {
	String valor="";
	DataInputStream in = new DataInputStream(System.in);
	try{
 valor=in.readLine();
 x= Integer.valueOf(valor).intValue();
	   }
	catch(Exception e) {System.out.println("ERRO");}
	return (x);
}	

//ler - ( LONG )
public static long ler ( long x ) {
	String valor="";
	DataInputStream in = new DataInputStream(System.in);
	try{
 valor=in.readLine();
 x= Long.valueOf(valor).longValue();
	   }
	catch(Exception e) {System.out.println("ERRO");}
	return (x);
}		


//ler - ( FLOAT )
public static float ler ( float x ) {
	String valor="";
	DataInputStream in = new DataInputStream(System.in);
	try{
 valor=in.readLine();
 x= Float.valueOf(valor).floatValue();
	   }
	catch(Exception e) {System.out.println("ERRO");}
	return (x);
}	

//ler - ( DOUBLE )	
public static double ler ( double x ) {
	String valor="";
DataInputStream in = new DataInputStream(System.in);
	try{
 valor=in.readLine();
 x= Double.valueOf(valor).doubleValue();
	   }
	catch(Exception e) {System.out.println("ERRO");}
	return (x);
}	

//ler - ( CHAR )
public static char ler ( char x ) {
	char y = ' ';
	String valor="";
	DataInputStream in = new DataInputStream(System.in);
	try{
	valor=in.readLine();	
	x = valor.charAt(0);
	}
	catch(Exception e) {System.out.println("ERRO");}
	return (x);
}	


//ler - ( STRING )
public static String ler ( String x ) {
	String valor="";
DataInputStream in = new DataInputStream(System.in);
	try{
 valor=in.readLine();
  }
	catch(Exception e) {System.out.println("ERRO");}
	return (valor);
}	

}

E essa outra é para calcular os elementos da diagonal principal de uma matriz 3 x 3.

Quais são os ídices dessa diagonal principal e como calculá-los?

public static void main(String [] args){
		
		double matriz_a[][] = new double[3][3];
		double soma=0, total=0;
		for (int i=0; i<matriz_a.length; i++){
			for (int j=0; j<matriz_a.length; j++){
				System.out.println("Informe o número da "+(i+1)+" linha e da "+(j+1)+" coluna da matriz:");
				matriz_a[i][j] = ler (matriz_a[i][j]);}}
		for (int i=0; i<matriz_a.length; i++){
			for (int j=0; j<matriz_a.length; j++){
				soma = soma + ???????

Tbm usada a função ler nessa matriz.

Vlw a ajuda!

1 Resposta

bielmenezes

Na questão 1 você não pode inicializar a variavel menor com o numero 0, pois se no seu vetor ou array não existir nenhum valor menor que 0 ele não irá alterar o valor inicial, a idéia é inicializar a variavel menor com o primeiro elemento do array.

No segundo caso qual é o mistério? Os índices da diagonal principal não são sempre i==j? Ex: 11, 22, 33…?

Criado 19 de junho de 2007
Ultima resposta 19 de jun. de 2007
Respostas 1
Participantes 2