Está en la página 1de 3

Ejercicio 1 En primer lugar, repasar las funciones de la libera string.h.

Despus, corregir los posibles errores de compilacin del siguiente programa:


#include <string.h> #include <stdio.h> int cuenta (char cadena) { int max=0; int aux=0; for (i=0; i<strlen(cadena); i++) { for (j=i+1; j<(strlen(cadena)-i+1); j++) { if (cadena[i]==cadena[j]) { aux++; if (aux > max) max=aux; } } aux=0; printf("i=%d, j=%d, i->%c, j->%c, aux=%d, max=%d\n",i,j,cadena[i],cadena[j],aux,max);

return max; } void concatena (char * destino, int num) { char a[10]; a[0]='a'; a[1]='\0'; /*caracter fin de cadena*/ strcat(a, destino); if (num == 1) strcat(a, "ran"); else strcat(a, "dos"); strcpy(destino, a); } void main() { int a; char p[10]; strcpy(p, 'palabra'); a=cuenta(p); concatena(p,&a); printf("%s\n", p); }

Por ltimo, tras comprobar que las correcciones realizadas son acertadas (en el cdigo ya corregido de la pgina siguiente), indicar qu imprime el printf sealado (solucin al final).

Cdigo corregido:

#include <string.h> #include <stdio.h> int cuenta (char * cadena) { int max=0,i,j; int aux=0; for (i=0; i<strlen(cadena); i++) { for (j=i+1; j<(strlen(cadena)-i+1); j++) { if (cadena[i]==cadena[j]) { aux++; if (aux > max) max=aux; } } aux=0; printf("i=%d, j=%d, i->%c, j->%c, aux=%d, max=%d\n",i,j,cadena[i],cadena[j],aux,max);

return max; } void concatena (char * destino, int num) { char a[10]; a[0]='a'; a[1]='\0'; /*caracter fin de cadena*/ strcat(a, destino); if (num == 1) strcat(a, "ran"); else strcat(a, "dos"); strcpy(destino, a); } void main() { int a; char p[10]; strcpy(p, "palabra"); a=cuenta(p); concatena(p,a); printf("%s\n", p); }

Solucin: apalabrados

También podría gustarte