Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- CONSIGNA:
- ---------
- Mátriz dinámica promedio
- A partir de una matriz dada de n filas por m columnas, la cual contiene números aleatorios menores a 20;
- se desea calcular otra matriz con las mismas dimensiones pero con la particularidad que, salvo su primer y ultimo elemento,
- el valor de cada uno de sus elementos es el resultado del promedio de la suma del elemento anterior, el actual y el siguiente.
- Desarrolle un programa que sea capaz de generar la matriz original a partir de las dimensiones asignadas por el usuario,
- calcule la matriz resultado y la muestre por pantalla.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX_VAL 20
- #define MIN_VAL 0
- int generar_matriz(int ** m, int filas, int cols);
- int resolver_matriz(float ** pr, int filas, int cols);
- void mostrar_matriz(void ** m, int filas, int cols);
- int main(int argc, char *argv[])
- {
- // Variables
- unsigned int filas, cols;
- // Acumuladores
- unsigned int i;
- // Matrices (original y promedio)
- int ** m;
- float ** pr;
- // Inicio de la app
- printf("Matriz dinamica aleatoria\n-------------------------\n");
- // Cantidad de filas
- printf("Ingrese cantidad de filas: ");
- scanf("%u", &filas);
- // Cantidad de columnas
- printf("Ingrese cantidad de columnas: ");
- scanf("%u", &cols);
- // Inicializacion de las matrices
- m = (int **)calloc(filas, sizeof(int *));
- pr = (float **)calloc(filas, sizeof(float *));
- // Verificar si fue correcta la inicialización
- if(m == NULL || pr == NULL)
- {
- printf("Error: No hay memoria disponible para la asignacion.\n");
- system("PAUSE");
- return -1;
- }
- // Asignación de filas y columnas
- for(i = 0; i < filas; i++)
- {
- m[i] = (int *)calloc(cols, sizeof(int));
- pr[i] = (float *)calloc(cols, sizeof(float));
- if(m[i] == NULL || pr[i] == NULL)
- {
- for(j = 0; j < i; j++)
- {
- free(m[j]);
- free(pr[j]);
- }
- }
- }
- // Generar matriz (original)
- generar_matriz(m, filas, cols);
- // Mostrar matriz (original)
- mostrar_matriz((int **)m, filas, cols);
- system("PAUSE");
- return 0;
- }
- int generar_matriz(int ** m, int filas, int cols)
- {
- unsigned int i, j;
- for(i = 0; i < filas; i++)
- {
- m[i] = (int *)calloc(cols, sizeof(int));
- if(m[i] == NULL)
- {
- free(m[i]);
- }
- }
- srand(time(0));
- for(i = 0; i < filas; i++)
- for(j = 0; j < filas; j++)
- m[i][j] = (rand()%MAX_VAL) + MIN_VAL;
- }
- void mostrar_matriz(void ** m, int filas, int cols)
- {
- // Completar
- }
Advertisement
Add Comment
Please, Sign In to add comment