// // main.c // T0_Ej14 // // Created by Mari Paz Guerrero Lebrero on 14/1/15. // Copyright (c) 2015 Mari Paz Guerrero Lebrero. All rights reserved. // #include #include #include #define MAXI 100 char CaracterMasRepetido(char cad[]); void InicializaCero(int v[], int n); int EstaEn(char c, char cad[]); int Maximo(int v[], int n); int main() { char cad[MAXI], c; int veces = 0, i; printf("Introduzca una cadena de caracteres: "); gets(cad); c = CaracterMasRepetido(cad); for(i = 0; i < strlen(cad); i++) { if(cad[i] == c) veces++; } printf("El caracter mas repetido es %c y se repite %d veces\n", c, veces); return 0; } char CaracterMasRepetido(char cad[]) { char car_cont[strlen(cad)]; int cuantos[strlen(cad)], i, j = 0, pos; InicializaCero(cuantos, strlen(cad)); car_cont[0] = '\0'; for(i = 0; i < strlen(cad); i++) { pos = EstaEn(cad[i], car_cont); if(pos == 0) { car_cont[j] = cad[i]; cuantos[j]++; j++; } else { cuantos[pos]++; } } i = Maximo(cuantos, j); return car_cont[i]; } void InicializaCero(int v[], int n) { int i; for(i = 0; i < n; i++) v[i] = 0; } int EstaEn(char c, char cad[]) { int i = 0, pos = 0, l, encontrado = 0; l = strlen(cad); while(i < l && encontrado == 0) { if(cad[i] == c) { pos = i; encontrado = 1; } i++; } return pos; } int Maximo(int v[], int n) { int i, maximo = v[0], pos = 0; for(i = 1; i < n; i++) { if(v[i] > maximo) { pos = i; maximo = v[i]; } } return pos; }