C/Visual C - Programa en C que llene una matriz dinámica de N * N y que almacene la diagonal

 
Vista:

Programa en C que llene una matriz dinámica de N * N y que almacene la diagonal

Publicado por Isaac m (5 intervenciones) el 20/08/2020 22:31:33
Hola a todos me pueden ayudar

Hacer un programa que llene una matriz dinámica de N * N y que almacene la diagonal
principal en un vector dinámico. Imprimir el vector resultante. Recuerde liberar memoria.
• El tamaño y los valores de la matriz deben ser introducidos por teclado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Sergio
Val: 6
Ha aumentado su posición en 127 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Programa en C que llene una matriz dinámica de N * N y que almacene la diagonal

Publicado por Sergio (2 intervenciones) el 06/09/2020 18:36:03
Hola te paso un ejemplo de matrices dinámicas, ojalá te sirva. Saludos!

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Realizar un programa que copie el contenido de una mtriz dinámica a otra
 
#include <stdio.h>
#include <stdlib.h>
void matriz0(int **mat, int, int);
void matriz1(int **mat1, int, int);
 
int main(){
	int filas = 0, cols = 0;
	int **mat = 0, **mat1 = 0;
 
	matriz0(mat, filas, cols);
	matriz1(mat1, filas, cols);
	return 0;
}
 
void matriz0(int **mat, int filas, int cols){
	int i, j;
 
	printf("Cantidad de filas para la matriz 1: ");
	scanf("%i", &filas);
	printf("Cantidad de columnas para la matriz 1: ");
	scanf("%i", &cols);
 
	mat = (int **) malloc(filas*sizeof(int*));
	if(mat == NULL){
		printf("No se ha podido reservar espacio");
		exit(0);
	}
 
	for(i = 0; i < filas; i++){
		*(mat+i) = (int*) malloc(cols*sizeof(int*));
		if(*(mat+i) == NULL){
			printf("No se ha podido reservar memoria \n");
			exit(0);
		}
	}
 
	printf("Introduzca los valores para la matriz 1:\n\n");
	for(i = 0; i < filas; i++){
		for(j =  0; j < cols; j++){
			printf("fila %i columna %i ", i, j);
			scanf("%i", &mat[i][j]);
		}
	}
 
	printf("\nMatriz:\n");
	for(i = 0; i < filas; i++){
		for(j = 0; j < cols; j++){
			printf("%i ", mat[i][j]);
		}
		printf("\n");
	}
	printf("\n");
}
 
void matriz1(int **mat, int filas, int cols){
	int i, j;
 
	printf("Cantidad de filas para la matriz 2: ");
	scanf("%i", &filas);
	printf("Cantidad de columnas para la matriz 2: ");
	scanf("%i", &cols);
 
	mat = (int **) malloc(filas*sizeof(int*));
	if(mat == NULL){
		printf("No se ha podido reservar espacio");
		exit(0);
	}
 
	for(i = 0; i < filas; i++){
		*(mat+i) = (int*)malloc(cols*sizeof(int*));
		if(*(mat+i) == NULL){
			printf("No se ha podido reservar memoria \n");
			exit(0);
		}
	}
 
	printf("Introduzca los valores para la matriz 2:\n\n");
	for(i = 0; i < filas; i++){
		for(j = 0; j < cols; j++){
			printf("fila %i columna %i ", i, j);
			scanf("%i", &mat[i][j]);
		}
	}
 
	printf("\nMatriz:\n");
	for(i = 0; i < filas; i++){
		for(j = 0; j < cols; j++){
			printf("%i ", mat[i][j]);
		}
		printf("\n");
	}
}
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