Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/01/2016, 12:56
vizen
 
Fecha de Ingreso: enero-2014
Mensajes: 60
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Estoy tratando de hacer un programa en c++ que pueda contar la repetición

hola nattadsa,
el programa lo llevas bien, hasta que cuentas las ocurrencias de los numeros,
fijate en el bucle for pues no tiene mucho sentido comparar con el opuesto en indices si lo que quieres es contar las ocurrencias de un numero.

lo que he hecho yo es ir contando cada numero (recorriendo cada valor de fila, columna) por todas las filas y columnas, es decir lo recorro dos veces por decirlo de alguna manera, cuento primero el cero y asi lo utilizo para descartar los que ya he contado.

Código c:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.    // ----------------------------------------------------------definir
  5.    int fila, colum, cero=0;
  6.  
  7.    printf("MATRIZ [fila][colum]: \n\n");
  8.    printf("Cantidad de filas: ");
  9.    scanf("%i", &fila);
  10.    printf("Cantidad de columnas ");
  11.    scanf("%i", &colum);
  12.  
  13.    int numero[fila][colum];
  14.    int contador[fila][colum];
  15.    // ---------------------------------------------------------rellenar
  16.    for(int f=0; f<fila; f++){
  17.       for(int c=0; c<colum; c++){
  18.          printf("Ingresar valor en [%i][%i]: ", f+1, c+1);
  19.          scanf("%i", &numero[f][c]);
  20.          if(!numero[f][c]) cero++;
  21.    }  }
  22.    for(int f=0; f<fila; f++)
  23.       for(int c=0; c<colum; c++) contador[f][c]=0;
  24.    // -----------------------------------------------------------contar
  25.    for(int f=0; f<fila; f++)
  26.       for(int c=0; c<colum; c++)
  27.          for(int ff=0; ff<fila; ff++)
  28.             for(int cc=0; cc<colum; cc++)
  29.                if((numero[f][c]!=0)&&(numero[ff][cc]!=0)&&
  30.                   ((ff!=f)||(cc!=c))&&(numero[f][c]==numero[ff][cc])){
  31.                   contador[f][c]++;
  32.                   numero[ff][cc]=0;
  33.                }
  34.    // -------------------------------------------------------visualizar
  35.    if(cero) printf("\nEl numero 0 existe %i veces", cero);
  36.    for(int f=0; f<fila; f++)
  37.       for(int c=0; c<colum; c++)
  38.          if(numero[f][c]) printf("\nEl numero %i existe %i veces",
  39.                                   numero[f][c], contador[f][c]+1);
  40.    return 0;
  41. }

espero te sirva