elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Problema con matrices y cadenas.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con matrices y cadenas.  (Leído 326 veces)
GustavoArango

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema con matrices y cadenas.
« en: 7 Mayo 2017, 05:31 »

Empece a programar hace poco, y aunque en la universidad no hemos visto matrices, yo he estado investigando y ya se (mas o menos  :silbar:) como realizar una matriz, hice varios ejercicios, asi que decidi dar el siguiente paso, intente hacer una matriz con cadenas, y por el titulo del post pues ya se habran imaginado que paso  :xD este es el programa:

Código
  1. #include<stdio.h>
  2. #include<windows.h>
  3. #include<string>
  4. using namespace std;
  5.  
  6. main()
  7. {
  8. int f1,c1,f,c,i,j,k,m;
  9. string a;
  10.  
  11.    printf("Por favor digite la cantidad de filas que desea:");
  12.    scanf("%d",&f);
  13.    printf("Por favor digite la cantidad de columnas que desea:");
  14.    scanf("%d",&c);
  15.  
  16. f1=f+1;
  17. c1=c+1;
  18.  
  19. string matrizB[f1][c1];    
  20.  
  21.   for(i=1;i<=f;i++)
  22.       {
  23.         printf("\n\t");
  24.  
  25.        for(j=1;j<=c;j++)
  26.        {          
  27.           printf("\n\t");
  28.           printf("posicion (%d,%d):",i,j);
  29.   scanf("%s",&a);
  30.           matrizB[i][j]=a;
  31.        }
  32.       }
  33.       for(i=1;i<=f;i++)
  34.       {
  35.       printf("\tF%d\t",i);
  36.   }
  37.  
  38.       for(i=1;i<=f;i++)
  39.       {
  40.       printf("\n");
  41.       printf("C%d",i);
  42.       for(j=1;j<=c;j++)
  43.       {
  44.       printf("\t%s\t",matrizB[i][j].c_str());
  45.   }
  46.   }    
  47. }
  48.  
Si, se que hay MUCHÍSIMOS errores (no me juzguen comencé hace poco  :rolleyes:), tal vez habrán muchas novatadas y cosas que sobran, pero es lo que puedo hacer hasta que tenga ya bastante experiencia en este tema. Bueno, el tema aquí es que si en vez de string cambio todo a int, es decir utilizo números, el programa funciona de maravilla:
Código
  1. #include<stdio.h>
  2. #include<windows.h>
  3.  
  4. main()
  5. {
  6. int a,f1,c1,f,c,i,j,k,m;
  7.  
  8.    printf("Por favor digite la cantidad de filas que desea:");
  9.    scanf("%d",&f);
  10.    printf("Por favor digite la cantidad de columnas que desea:");
  11.    scanf("%d",&c);
  12.  
  13. f1=f+1;
  14. c1=c+1;
  15.  
  16. int matrizB[f1][c1];    
  17.  
  18.   for(i=1;i<=f;i++)
  19.       {
  20.         printf("\n\t");
  21.  
  22.        for(j=1;j<=c;j++)
  23.        {          
  24.           printf("\n\t");
  25.           printf("posicion (%d,%d):",i,j);
  26.   scanf("%d",&a);
  27.           matrizB[i][j]=a;
  28.        }
  29.       }
  30.       for(i=1;i<=f;i++)
  31.       {
  32.       printf("\tF%d\t",i);
  33.   }
  34.  
  35.       for(i=1;i<=f;i++)
  36.       {
  37.       printf("\n");
  38.       printf("C%d",i);
  39.       for(j=1;j<=c;j++)
  40.       {
  41.       printf("\t%d\t",matrizB[i][j]);
  42.   }
  43.   }
  44. }

Creí que simplemente cambiando los números a cadenas iba a funcionar, pero ya veo que no, alguien me podría ayudar por favor, o si lo estoy haciendo mal y hay otra forma con la que se introduce caracteres o cadenas a una matriz me podrían indicar cual es, muchas gracias  ;D ;D ;D


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 7 Mayo 2017, 06:02 por engel lex » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 11.718



Ver Perfil
Re: Problema con matrices y cadenas.
« Respuesta #1 en: 7 Mayo 2017, 06:31 »

ok... hace poco habia dicho que no se podìa programar mezclado c y c++ o era uno u otro... ya veo que no...

D: tu codigo es un desastre D:

si estás usando <string> y "using namespace" estás en c++, entonces lee y escribe por sus respectivos metodos para sus variables

primero que nada main debe ser int y retornar 0 si todo salió bien

no entiendo porque en tu array siempre empiezas desde 1 :s


simplemente te dejaré la forma en que yo lo haría en C++

Código
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.  int f,c,i,j;
  8.  
  9.  cout << "Por favor digite la cantidad de filas que desea:";
  10.  cin >> f;
  11.  cout << "Por favor digite la cantidad de columnas que desea:";
  12.  cin >> c;
  13.  
  14.  string matrizB[f][c];
  15.  
  16.  for(i=0;i<f;i++){
  17.    cout << endl;
  18.  
  19.    for(j=0;j<c;j++){
  20.      cout << endl;
  21.      cout << "\tposicion (" << (i+1) << ":" << (j+1) << "): ";
  22.      cin >> matrizB[i][j];
  23.    }
  24.  }
  25.  for(i=0;i<f;i++){
  26.    cout << "\tF" << (i+1) << "\t";
  27.  }
  28.  
  29.  for(i=0;i<f;i++){
  30.    cout << endl;
  31.    cout << "C" << (i+1);
  32.    for(j=0;j<c;j++){
  33.      cout << "\t" << matrizB[i][j] << "\t";
  34.    }
  35.  }
  36.  cout << endl;
  37.  return 0;
  38. }
  39.  

y aquí en C
Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int main(){
  5.  int f,c,i,j;
  6.  
  7.  printf("Por favor digite la cantidad de filas que desea:");
  8.  scanf("%d",&f);
  9.  printf("Por favor digite la cantidad de columnas que desea:");
  10.  scanf("%d",&c);
  11.  
  12.  char matrizB[f][c][20];    
  13.  
  14.  for(i=0;i<f;i++){
  15.    printf("\n\t");
  16.  
  17.    for(j=0;j<c;j++){          
  18.      printf("\n\t");
  19.      printf("posicion (%d,%d):",i+1,j+1);
  20.      scanf("%s",matrizB[i][j]);
  21.    }
  22.  }
  23.  for(i=0;i<f;i++){
  24.    printf("\tF%d\t",i+1);
  25.  }
  26.  
  27.  for(i=0;i<f;i++){
  28.    printf("\n");
  29.    printf("C%d",i+1);
  30.    for(j=0;j<c;j++){
  31.      printf("\t%s\t",matrizB[i][j]);
  32.    }
  33.  }  
  34.  printf("\n");
  35.  return 0;
  36. }


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MAFUS


Conectado Conectado

Mensajes: 870



Ver Perfil
Re: Problema con matrices y cadenas.
« Respuesta #2 en: 7 Mayo 2017, 17:17 »

Cuidado con dimensionar arrays a partir de variables,  eso es una dependencia del compilador. El estándar dice que solo se pueden dimensionar con constantes. Para dimensionar con variables debe de forma dinámica.
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
GustavoArango

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema con matrices y cadenas.
« Respuesta #3 en: 7 Mayo 2017, 18:46 »

Vale, gracias, no tenia idea que no podía mezclar una cosa con la otra, lo he hecho todo el tiempo  :silbar: , y lo de que la matriz comience en +1 son puras paranoias mías, creí que si lo dejaba exacto no iba a funcionar porque no leería el ultimo dato o alguna cosa así :xD , ya veo que no, el problema es que no estoy familiarizado con la librería iostream, sino con la stdio, no sabia que la primera era la de c++, solo me han enseñado stdio, de nuevo muchas gracias por mostrarme el programa, me ayudo a aclararme en muchas cosas, saludos  :)
En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 11.718



Ver Perfil
Re: Problema con matrices y cadenas.
« Respuesta #4 en: 7 Mayo 2017, 18:49 »

Cuidado con dimensionar arrays a partir de variables,  eso es una dependencia del compilador. El estándar dice que solo se pueden dimensionar con constantes. Para dimensionar con variables debe de forma dinámica.

cierto XD pero soy sincero y me ha dado pereza siempre la redimensión en C y en C++ eso me iba a tomar como 6 lineas XD
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre cadenas a matrices
Programación C/C++
vens_19 4 1,602 Último mensaje 26 Noviembre 2009, 15:31
por tragantras
Ayuda con matrices de cadenas « 1 2 »
Programación C/C++
negux 14 8,323 Último mensaje 30 Junio 2010, 00:17
por negux
[c] Problema con matrices
Programación C/C++
Dacan 1 418 Último mensaje 5 Abril 2013, 03:53
por betokscr
Problema con matrices
Programación C/C++
Xammm 4 993 Último mensaje 10 Julio 2014, 14:07
por Xammm
Problema con Matrices en C
Programación C/C++
EASV95 2 367 Último mensaje 21 Abril 2015, 01:51
por EASV95
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines