Título: Matrices
Publicado por: yesid1718 en 23 Octubre 2016, 04:32 am
Tengo un codigo en c y en este creo una matriz la imprimo y la sumo luego los valores de las fila pares e impares se guardan en vectores diferentes hasta esta parte todo esta bien pero al sumar los vectores no me aparecen bien los valores de la suma correctamente me aparecen unos números largos todo extraños y no se cual es el error porfavor me podrian ayudar con este tema.?
Título: Re: Matrices
Publicado por: engel lex en 23 Octubre 2016, 04:41 am
sin ver tu codigo puede ser que sumaste mal, fallaste colocando algo en las matrices ya que no tiene claridad de como se usan, estás imprimiendo lo que no debes, nunca las inicializaste.... las posibilidades son muchas...
si colocas tu codigo usa las etiquetas GeSHi
Título: Re: Matrices
Publicado por: yesid1718 en 23 Octubre 2016, 05:01 am
#include<stdio.h> #include<conio.h> //Declaracion de funciones void llenar_matriz( int A[10][10] , int , int); void imprimir_matriz(int A[10][10] , int , int); void llenar_vectorpar(int B[25], int A[10][10], int, int ); void llenar_vectorimpar(int G[25], int A[10][10], int, int ); void suma_vectorA(int A[25] , int, int ); void sumar_matriz(int A[10][10] , int , int); // programa principal void main(){ //zona de declaración de variables locales int f; int g; int A[10][10]; int B[25]; int G[25]; printf("ingrese el nuemro de filas \n"); printf("ingrese el nuemro de columnas \n"); llenar_matriz (A,g, f); imprimir_matriz (A, g, f); sumar_matriz(A,g,f); llenar_vectorpar(B,A, g, f); llenar_vectorimpar(G,A, g, f); suma_vectorA( B, g,f ); suma_vectorA( G, g,f ); } void llenar_matriz (int A[10][10] , int g , int f) { int fila,columna; for (fila=0; fila<=g; fila++) { for (columna=0; columna<=f; columna++) { printf ("digite el valor en la posicion %d %d", fila , columna ); scanf("%d", &A [fila ][columna ]); } } } void sumar_matriz(int A[10][10] , int g , int f ){ int fila,columna; int Ac=0 ; for (fila=0; fila<=g; fila++) { for (columna=0; columna<=f; columna++) { Ac= A[fila][columna] + Ac ; } } printf("\nla suma de la matriz es:\n "); } void imprimir_matriz( int A[10][10], int g , int f ) { int fila,columna; for (fila=0; fila<=g; fila++) { for (columna=0; columna<=f; columna++) { printf ("\t %d", A [fila ][columna ]); } } } void llenar_vectorpar(int B[25], int A[10][10], int g , int f) { int fila,columna; printf("\nvector para las filas par\n"); for (fila=0; fila<=g; fila++) { for (columna=0; columna<=f; columna++){ if(fila % 2 == 0) { B[fila]=A[fila][columna]; } } } } void llenar_vectorimpar(int G[25], int A[10][10], int g, int f ){ int fila,columna; printf("\nvector para las filas impar\n\n"); for (fila=0; fila<=g; fila++) { for (columna=0; columna<=f; columna++){ if(fila % 2 != 0) { G[fila]=A[fila][columna]; } } } } void suma_vectorA(int B[25] , int g, int f) { int Ac=0; int i; for ( i=0 ; i<=g ; i++){ Ac= B[i] + Ac ; } printf( "\nla suma de los valores del vector para filas pares es:\n "); }
Este es el código no se que tengo mal te agradeceria que me ayudaras. Mod: Los códigos deben ir en etiquetas GeSHi
Título: Re: Matrices
Publicado por: engel lex en 23 Octubre 2016, 05:05 am
ahora corre tu código y muestra una captura de pantalla a ver el resultado
aunque de antemano en los for veo unos menor o igual, que deberian ser solo menor que
y en general, main debe ser tipo int y retornar 0...
Título: Re: Matrices
Publicado por: yesid1718 en 23 Octubre 2016, 05:16 am
(http://)
Título: Re: Matrices
Publicado por: engel lex en 23 Octubre 2016, 05:41 am
fijate el error que te digo (en tiempo de ejecución) filas: 1, columnas: 1 vector: 1 2 3 4 en ese vector cuento 2 filas y 2 columnas el error está en void llenar_vectorpar(int B[25], int A[10][10], int g , int f) { int fila,columna; printf("\nvector para las filas par\n"); for (fila=0; fila<=g; fila++) { for (columna=0; columna<=f; columna++){ if(fila % 2 == 0) { B[fila]=A[fila][columna]; } } } }
cuando llenas B o G, saltas la posición... es decir en ese segmento, nunca llenas B[1] por ejemplo, asi que cuando llegas a llenar vector y accedes a B[1], contiene basura como es de esperar
|