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