#include #include int sumaDigitosPares(int numero) { int ultimoDigito; if (numero < 0) { numero = -numero; } if (numero == 0) { return 0; } ultimoDigito = numero % 10; if (ultimoDigito % 2 == 0) { return ultimoDigito + sumaDigitosPares(numero / 10); } else { return sumaDigitosPares(numero / 10); } } void recorrerVector(int *vector, int tam, int indice, int *numeroMayor, int *sumaMayor) { int sumaActual; if (indice >= tam) { return; } sumaActual = sumaDigitosPares(vector[indice]); printf("Numero: %d -> Suma de digitos pares: %d\n", vector[indice], sumaActual); if (sumaActual > *sumaMayor) { *sumaMayor = sumaActual; *numeroMayor = vector[indice]; } recorrerVector(vector, tam, indice + 1, numeroMayor, sumaMayor); } int main() { int tam, i; int *vector; int numeroMayor = 0; int sumaMayor = -1; printf("Ingrese la cantidad de numeros: "); scanf("%d", &tam); if (tam <= 0) { printf("Error: La cantidad debe ser mayor a 0\n"); return 1; } vector = (int *)malloc(tam * sizeof(int)); if (vector == NULL) { printf("Error al asignar memoria\n"); return 1; } printf("\nIngrese los %d numeros:\n", tam); for (i = 0; i < tam; i++) { printf("vec[%d]=", i); scanf("%d", &vector[i]); } recorrerVector(vector, tam, 0, &numeroMayor, &sumaMayor); printf("\nNumero con mayor suma de digitos pares: %d\n", numeroMayor); printf("Suma de sus digitos pares: %d\n", sumaMayor); free(vector); return 0; }