Buenas noches, llevo algunas horas con este ejercicio y la verdad no se que esta mal ya que por mas que reviso, no logra arrojar la cantidad correcta, el ejercicio es el siguiente:
Crear un programa en Java que permita identificar y contar los datos positivos y negativos almacenados en una matriz.
Y mi codigo es el siguiente:
import java.util.Scanner;
public class ejercicio_01 {
private Scanner teclado;
private int[][] mat;
private int pos=0;
private int neg=0;
public void cargar() {
teclado=new Scanner(System.in);
System.out.print("Cuantas fila tiene la matriz:");
int filas=teclado.nextInt();
System.out.print("Cuantas columnas tiene la matriz:");
int columnas=teclado.nextInt();
mat=new int[filas][columnas];
for(int f=0;f<mat.length;f++) {
for(int c=0;c<mat[f].length;c++) {
System.out.print("Ingrese componente:");
mat[f][c]=teclado.nextInt(); }
}
}
public void contador(){
System.out.println("Positivos y negativos");
for(int f=0;f<mat.length;f++){
for(int c=0;c<mat.length;c++){
if(mat[f][c]>=0)
pos++;
else if (mat[f][c]<0)
neg++;
}
}
System.out.println("cantidad de positivos: "+pos);
System.out.println("cantidad de negativos: "+neg);
}
public static void main(String[] ar) {
ejercicio_01 p=new ejercicio_01();
p.cargar();
p.contador();
}
}
Alguien me indica en donde esta el error?
PD: El cero lo tomo como número positivo.
Prueba esto:
if(mat[f][c]>0) { pos++; }
else if (mat[f][c]<0){ neg++; }
creo que el error lo tenias en el if, cuando comparabas la matriz "mat", le estabas diciento que si es mayor o IGUAL que 0 que fuese positivo, si lo pones asi no deberia salirte el 0
podrías detallar con más exactitud el problema que tienes?
no podrías usar simplemente "else" en lugar de "else if"? el if ahí sobra porque la consecuencia es única...