Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/02/2015, 17:27
Avatar de xKuZz
xKuZz
 
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 2 meses
Puntos: 27
Respuesta: matris llenado y mostrado con funciones

Aquí tienes tu código resuelto con los fallos indicados, algunos consejos y un poquito más organizado, cualquier duda que tengas sigue consultándola en el foro

Código C++:
Ver original
  1. #include<stdio.h>
  2. // #include <math.h> -> Inncesario para el programa que estás ejecutando
  3. // #include <conio.h> -> Lo he quitado porque en mi Ubuntu no tengo está cabecera, vuelve a ponerlo si deseas utilizar getch()
  4. // Intenta ser organizado sobre todo si estás empezando a programar, te ayudará a entender mejor las cosas
  5.  
  6. // Declaración de funciones globales
  7. int i,j; // Existe la posibilidad de poner int i=0 en los bucles for de tal manera que cuando se acabe el bucle la variable i desaparece.
  8.      // Yo soy más partidario de crear una i local para cada bucle pero no afecta en absoluto al funcionamiento de tu programa
  9.      // Mira luego abajo del todo en las definiciones
  10.  
  11. void llenar(int f,int c,int x[][10]);
  12. void mostrar(int f,int c,int x[][10]);
  13.  
  14. // Inicio del programa
  15. main () {
  16.      // Declaración/inicialización de variables
  17.      char op;
  18.      int a[10][10]={'\0'},i,j,k,temp,nf,nc;
  19.      
  20.      // E/S y Cómputo de datos
  21.      printf("Que tamaño tiene la matriz:\na = 2x2\nb =3x3\n");
  22.      printf("\ndame tu opcion\n");
  23.      scanf("%c",&op);
  24.       switch(op)
  25.       { /* Mejora 1: ¿Para qúe seleccionar opción si luego hay que introducir el número de filas y columnas? */
  26.     /* Mejora 2: Controla que en ningún momento 'nf' ni 'nc' supere el valor 10 ya que el máximo de valores para tu matriz con arrays es 10x10 */
  27.         case 'a':
  28.         case 'A':
  29.                 printf("\nseleccionastes una matriz de 2x2\n");
  30.                 printf("\ndame el numero de fila y columnas de la matriz:\n"); // Mejor "columnas" que "comulumnas"
  31.                 scanf("%d%d",&nf,&nc);
  32.                 printf("\nllenando la matriz x\n");
  33.                 llenar(nf, nc, a); // Al llamar las funciones no se pone el tipo de dato, tampoco el parámetro. Los tipos de datos
  34.             mostrar(nf, nc, a); // se ponen en la declaración (lo que tienes antes del main) y en la definición (lo que tienes después del main
  35.         // Al usar un array como parámetro actual (en este caso a, no se pone 'a[10][10]' o lo que corresponda, sólo 'a')
  36.         // Al usar un array como parametro formal (en la declaración y/o definición si se pone)
  37.         // Me he tomado la libertad de quitar muchos corchetes innecesarios
  38.         break;
  39.         case 'b':
  40.         case 'B':
  41.                 printf("\nsleccionastes una matriz de 3x3\n");     // Todo similar al caso A
  42.                 printf("\ndame el numero de fila y columnas de la matriz:\n");
  43.                 scanf("%d%d",&nf,&nc);
  44.                 printf("\nllenando la matriz x\n");
  45.                 llenar(nf, nc, a);
  46.             mostrar(nf, nc, a);
  47.          break;          
  48.      }      
  49. // Getch(); Lo quite porque no tengo la cabecera lo expliqué arriba del todo      
  50.      return 0;
  51.  
  52. } // Fin del programa
  53.  
  54. // Definición de funciones
  55.  
  56. void llenar(int f,int c,int x[][10]) { 
  57.     for(i=0;i<f;i++)        //Al acabarse i y j siguen existiendo
  58.         for (j=0;j<c;j++)
  59.         {
  60.             printf("x[%d][%d]=",i,j);
  61.             scanf("%d",&x[i][j]);
  62.         }
  63.        
  64.  }
  65. void mostrar(int f,int c,int x[][10]) {
  66.     printf("\nla matriz es:\n");
  67.         for(int i=0;i<f;i++)        //Al acabarse el bucle i y j dejan de existir
  68.         {
  69.         for (int j=0;j<c;j++)
  70.                 printf("%d\t",x[i][j]);
  71.             printf("\n");
  72.         }
  73. }