Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: KarlaM en 22 de Febrero 2015, 22:58
		
			
			- 
				Necesito ayuda con este programa que me dejaron de tarea, ya logré hacer casi todo menos la funcion para pedir los datos que llenaran la matriz. O si no de que otra forma podría hacer esto? 
 
 Escribe un programa que tenga dos funciones:
 * Una funcion que genere una matriz dinámica de M renglones por N columnas y que regrese un apuntador a esa matriz.
 *Otra funcion que reciba el apuntador devuelto por la funcion anterior, encargada de leer de la entrada estandar los valores necesarior para llenar la matriz.
 
 Observaciones:
 
 *Asuma que la matriz es de enteros.
 *La funcion main invoca las dos funciones.
 
 
 #include <stdio.h>
 #include <stdlib.h>
 void generaMatriz( int **, int *, int * );
 void leeDatos( int **, int *, int * );
 int main()
 {
 int **matriz, x, y;
 
 generaMatriz( matriz, &x, &y );
 
 printf("n: %d, m: %d", x, y);
 
 leeDatos( matriz, &x, &y );
 
 getchar();
 return(0);
 
 
 }
 
 void generaMatriz( int **matriz, int *x, int *y )
 {
 int i, m, n;
 
 printf("Ingresa numero de filas: ");
 scanf("%d", &m); fflush(stdin);
 
 printf("Ingresa numero de filas: ");
 scanf("%d", &n); fflush(stdin);
 
 *x=m;
 *y=n;
 
 matriz=(int **)malloc(sizeof(int *)*m);
 
 for(i=0; i<n; i++)
 {
 matriz[i]=(int *)malloc(sizeof(int )*n);
 }
 
 return;
 }
 
 void leeDatos( int **matriz, int *m, int *n )
 {
 int i, j;
 
 for(i=0; i<(*m); i++ )
 {
 for(j=0; j<(*n); j++)
 {
 printf("Ingresa numero en posicion [%d][%d]: ", i, j );
 scanf("%d", matriz[i][j]); fflush(stdin);
 }
 }
 
 return;
 
 }
- 
				Hola creo que a partir de este ejemplo te puedes guiar para resolverlo:
 
 #include <iostream>
 using namespace std;
 
 int main() {
 int i,j,f,c;
 
 cout << "Introduce el numero de filas" << endl;
 cin >> f;
 cout << "Introduce el numero de columnas" << endl;
 cin >> c;
 
 // creamos la matriz !
 int **M = new int* [f];
 for (i = 0; i < f; i++)
 M[i] = new int[c];
 
 // Comprobamos
 if (!M) {
 cout << "No se puede reservar el espacio" << endl;
 return 1;
 }
 
 cout << "Introduzca la matriz" << endl;
 for (i = 0; i < f; i++)
 for (j = 0; j < c; j++)
 cin >> M[i][j];
 
 cout << "Mostrar la matriz" << endl;
 for (i = 0; i < f; i++) {
 for (j = 0; j < c; j++)
 cout << M[i][j] << " ";
 cout << endl;
 }
 delete [] M;
 
 return 0;
 }
 Salu2