Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Estoy tratando de hacer un programa en c++ que pueda contar la repetición de numeros

Estas en el tema de Estoy tratando de hacer un programa en c++ que pueda contar la repetición de numeros en el foro de C/C++ en Foros del Web. Lo que vengo haciendo es esto pero sin resultados, alguien puede ayudarme con la solución? o decirme que estoy haciendo mal? Código: #include <stdio.h> #include ...
  #1 (permalink)  
Antiguo 14/01/2016, 21:46
 
Fecha de Ingreso: marzo-2014
Mensajes: 22
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Estoy tratando de hacer un programa en c++ que pueda contar la repetición de numeros

Lo que vengo haciendo es esto pero sin resultados, alguien puede ayudarme con la solución? o decirme que estoy haciendo mal?
Código:
#include <stdio.h> 
#include <stdlib.h> 
 
main()
 
{
 
int numero[10][10],n,m,a=0,b=0,contador[10][...
printf("MATRIZ [n][m]: \n");
printf("CANTIDAD DE COLUMNAS: ");
scanf("%i", &n);
printf("CANTIDAD DE FILAS: ");
scanf("%i", &m);
for(a = 0;a < n;a++){
for(b = 0;b < m;b++){
printf("INGRESAR VALORES A [%i][%i]: ", a+1, b+1);
scanf("%i", &numero[a][b]);
}
}
for (a=0;a<n;a++) {
for (b=0;b<m;b++)
{
if (numero[a][b]==numero[b][a])
contador[a][b]++;
}
printf("%i aparece %i veces\n",numero[a][b],contador[a][b]);
}
system("Pause");
 
 
return 0;
}
desde ya gracias!
  #2 (permalink)  
Antiguo 15/01/2016, 00:14
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: Estoy tratando de hacer un programa en c++ que pueda contar la repetición

Una lista de números repetidos es una lista o un array? Entiéndase que es una lista... Deberías declarar contador como una lista. Eso sí, que no se te olvide inicializar la lista para no llevarte sorpresas.

Después simplemente vas incrementando el contador que corresponda... Como ahora sólo tienes una lista el número de repeticiones del número N estará en el índice N. No tendrás un segundo índice como hasta ahora.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #3 (permalink)  
Antiguo 16/01/2016, 12:56
 
Fecha de Ingreso: enero-2014
Mensajes: 60
Antigüedad: 10 años, 11 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

Etiquetas: c++, logica, programación-general
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.