/* El ejercicio va a consistir en: 1. Multiplicar las columnas de una Matriz 3x3 2. Dado un número cualquiera, deberemos calcular los digitos que tiene y sumarlos */ #include <stdio.h>; #include <stdlib.h> void Muestra_Matriz (int [3][3], int f, int c); void Multiplica_Columnas(int m[3][3], int f, int c, int *m0, int *m1, int *m2); void Calcula_Digitos (int numero, int **digitos, int *longitud); void Muestra_Digitos (int *digitos, int longitud); void Calcula_Suma (int *digitos, int longitud, int *suma); int main () { int f=0, c=0, numero; int m0, m1, m2; int *digitos; int longitud; int suma; int m[3][3]={10,20,30,40,50,60,70,80,90}; Muestra_Matriz (m,f,c); Multiplica_Columnas (m,f,c, &m0, &m1, &m2); printf ("El resultado de la columna [1] es: %d \n",m0); printf ("El resultado de la columna [2] es: %d \n",m1); printf ("El resultado de la columna [3] es: %d \n",m2); printf ("Introduce un número :"); scanf ("%d",&numero); Calcula_Digitos (numero, &digitos, &longitud); printf ("El numero tiene %d números", longitud); Muestra_Digitos(digitos, longitud); Calcula_Suma (digitos,longitud,&suma); printf ("La suma es: %d",suma); return 0; } void Calcula_Suma (int *digitos, int longitud, int *suma) { int i; int tmp=0; for (i=0; i < longitud; ++i) { tmp += digitos[i]; } *suma=tmp; } void Muestra_Digitos (int *digitos, int longitud) { int i; printf ("\n"); for (i=longitud-1; i>=0; --i) { printf ("%d",digitos[i]); } printf ("--\n"); } void Calcula_Digitos (int numero, int **digitos, int *longitud) { int n, l; int *tmp = NULL; for (n = numero, l=0; n > 0 ; n = n/10) { l += 1; } *longitud = l; tmp=calloc(*longitud, sizeof(int)); for (n = numero, l = 0; l < *longitud; n /= 10, ++l) { tmp[l]= n % 10; } *digitos = tmp; } void Muestra_Matriz (int m[3][3], int f, int c) { for (f=0;f<3;f++) { for (c=0;c<3;c++) { printf ("[%d]",m[f][c]); } printf ("\n"); } } void Multiplica_Columnas (int m[3][3], int f, int c, int *m0, int *m1, int *m2) { int c0[3]; int c1[3]; int c2[3]; for (f=0;f<3;f++) { for (c=0;c<3;c++) { if (c == 0) c0[f]=m[f][c]; if (c == 1) c1[f]=m[f][c]; if (c == 2) c2[f]=m[f][c]; } } *m0=c0[0]*c0[1]*c0[2]; *m1=c1[0]*c1[1]*c1[2]; *m2=c2[0]*c2[1]*c2[2]; }
miércoles, 15 de mayo de 2019
Ejercicio completo en C. Revisión. Matrices y Cálculo
Buen ejemplo de práctica en C.