Foro de elhacker.net

Programación => Java => Mensaje iniciado por: K3NS4N en 23 Mayo 2014, 09:11 am



Título: Contador de números positivos y negativos
Publicado por: K3NS4N en 23 Mayo 2014, 09:11 am
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:

Código
  1.  
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class ejercicio_01 {
  6.  
  7. private Scanner teclado;
  8. private int[][] mat;
  9. private int pos=0;
  10. private int neg=0;
  11.  
  12.  
  13. public void cargar() {
  14.  
  15. teclado=new Scanner(System.in);
  16.  
  17. System.out.print("Cuantas fila tiene la matriz:");
  18. int filas=teclado.nextInt();
  19.  
  20. System.out.print("Cuantas columnas tiene la matriz:");
  21. int columnas=teclado.nextInt();
  22.  
  23. mat=new int[filas][columnas];
  24.  
  25. for(int f=0;f<mat.length;f++) {
  26. for(int c=0;c<mat[f].length;c++) {
  27. System.out.print("Ingrese componente:");
  28.  
  29. mat[f][c]=teclado.nextInt(); }
  30. }
  31. }
  32.  
  33.  
  34.  
  35. public void contador(){
  36. System.out.println("Positivos y negativos");
  37.  
  38. for(int f=0;f<mat.length;f++){
  39. for(int c=0;c<mat.length;c++){
  40. if(mat[f][c]>=0)
  41. pos++;
  42. else if (mat[f][c]<0)
  43. neg++;
  44. }
  45. }
  46. System.out.println("cantidad de positivos: "+pos);
  47. System.out.println("cantidad de negativos: "+neg);
  48.  
  49. }
  50.  
  51.  
  52.  
  53. public static void main(String[] ar) {
  54. ejercicio_01 p=new ejercicio_01();
  55. p.cargar();
  56. p.contador();
  57. }
  58.       }
  59.  
  60.  


Alguien me indica en donde esta el error?

PD: El cero lo tomo como número positivo.


Título: Re: Contador de números positivos y negativos
Publicado por: puntoBat en 23 Mayo 2014, 13:35 pm
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



Título: Re: Contador de números positivos y negativos
Publicado por: engel lex en 23 Mayo 2014, 13:50 pm
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...