C/Visual C - Ejercicio: Suma de matrices (Memoria dinámica)

 
Vista:
sin imagen de perfil

Ejercicio: Suma de matrices (Memoria dinámica)

Publicado por Yael (6 intervenciones) el 28/11/2013 04:40:09
Hola! ¿Pudieran ayudarme a crear un código en C que me genere las matrices y calcule su inversa?
En memoria dinámica. Ya intenté varias formas y no puedo.

Solo puedo usar stdio.h, stdlib.h y time.h.

Agradecería mucho cualquier ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ejercicio: Suma de matrices (Memoria dinámica)

Publicado por Chema (234 intervenciones) el 28/11/2013 13:27:11
Matrices super dinamicas.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void){
	int i;
	int *matrix;
	int size = 8192/sizeof(matrix);
	char *block = malloc(8192);
 
	for(matrix =(int*)(block),i = 0 ; i < size; i++,*++matrix = i){
		/*vacio a proposito*/
	}
                    /*¿Calcular la inversa? ¿Qué es eso?*/
	/*Se muestran desde el final,*/
	for(matrix =(int*)(block),i = size; i >= 0; i--){
		 printf("%d-",matrix[i]);
	}
 
	 free(block);
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejercicio: Suma de matrices (Memoria dinámica)

Publicado por Chema (234 intervenciones) el 28/11/2013 22:47:08
En el asunto comentabas la suma de matrices.
Suma de matrices dinámicas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void){
	int i;
	int *matrix_a;
	int *matrix_b;
	int result;
	int size = 8192/sizeof(int);
	char *block = malloc(8192);
	matrix_a =(int*)block;
	matrix_b =(int*)block+size/2;
	/*
	* size = numero máximo de int que admite block
	*/
	for(i = 0 ; i < size; i++){
		i%2 ? (*matrix_a++=1)  : (*matrix_b++=2) ;
	}
	matrix_a =(int*)block;
	matrix_b =(int*)block+size/2;
 
	/*
	*size/2 es el número de elementos que contiene cada
	*matriz. El resultado tiene que ser 3 y coincidir con 
	*size/2 en el número de elementos.
	*/
	for(i = 0 ; i < size/2; i++){
		 result = *matrix_a+++ *matrix_b++;
		  printf("%d-",result);
	}
 
	 free(block);
	return 0;
}


Si presentas este ejercicio al profesor seguro que te pone una buena nota.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ejercicio: Suma de matrices (Memoria dinámica)

Publicado por Yael (6 intervenciones) el 29/11/2013 03:27:49
Estoy utilizando Dev C++ ¿Eso afecta? Puesto que el programa solo me imprime 3-3-3-3-3...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejercicio: Suma de matrices (Memoria dinámica)

Publicado por Chema (234 intervenciones) el 29/11/2013 10:51:39
Uso un simple editor de texto sobre linux/GCC sobre Dev C++ no se nada.
Imprime 3-3-3-3-3... es correcto. lo uso como test,si deseas realizar otro tipo de resultado cambia .
(*matrix_a++=1) : (*matrix_b++=2) ;

Piensa que el ejemplo es una especie de juego rompecabezas, para entenderlo hace falta tener nivel.
mucho más simple es el uso de malloc(numeroelementos*sizeof(int).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar