Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/03/2015, 05:40
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: longitud de una cadena en C

Buenas murfo, bienvenido al foro.

Te cuento:

* No es necesario que uses 'x' e 'y' para los bucles, dado que éstos no se solapan te puedes ahorrar una de las dos variables

* ¿Por qué calculas la longitud máxima en un bucle independiente? Lo puedes hacer sobre la marcha cuando le pides al usuario las cadenas.

* No es necesario usar el array "longitud". Tampoco es que el rendimiento de este algoritmo se vaya a ver resentido por calcular la longitud de las cadenas varias veces.

* Te he corregido un pequeño detalle en el código. He añadido un comentario al respecto.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.      
  4. int main()
  5. {
  6.   char cadenas[10][100];
  7.   int cantidad, x, longitud, mayor = -1;
  8.      
  9.   for(x=0;x<10;x++)   // OJO! el primer elemento tiene subindice 0
  10.   {
  11.     printf("ingresa una cadena %i: ", x+1); // <--- el primer índice es 0. En el último bucle haces exactamente esta misma modificación
  12.     scanf("%s",cadenas[x]);
  13.     longitud = strlen( cadenas[x] );
  14.     if ( mayor < longitud )
  15.       mayor = longitud;
  16.   }
  17.      
  18.   printf("longitud de cadena mayor %i\n",mayor);
  19.   printf("Longitud de cadena a evaluar: ");
  20.   scanf("%i",cantidad);
  21.      
  22.   printf("cadenas que corresponden a la longitud: %i\n",cantidad);
  23.   for( x=0;x<10;x++)   // OJO! el primer elemento tiene subindice 0
  24.   {
  25.     if ( strlen( cadenas[x] ) == cantidad )
  26.       printf("%i: %s\n",x+1, cadenas[x]);
  27.   }  
  28.  
  29.   return 0;
  30. }

Por lo demás, poco que contar, el código funciona como se espera de el :)

Un saludo