ayuda con este codigo en lenguaje C "se que no van temas de c ni c++ pero necesito de su ayuda" Longitud de cadena de caracteres

lo que necesito es que el programa indique cual es la mayor longitud y cuales cadenas o palabras tienen la misma cantidad de letras (longitud) en este caso si ingreso los 10 valores

ingresa la cadena 1:azul (((esto de ingresar todas las cadenas ya lo tengo bien))
ingresa la cadena 2:azul
ingresa la cadena 3:azul
ingresa la cadena 4:casamitierra
ingresa la cadena 5:oscar
ingresa la cadena 6:casamitierra
ingresa la cadena 7:casamitierra
ingresa la cadena 8:hola
ingresa la cadena 9:agua
ingresa la cadena 10:casamitierra

longitud de cadena mayor : 12 (((ESTO ES LO QUE ME FALLA , NO ME DICE CUAL ES LA LONGITUD MAS GRANDE ))))

cadenas que corresponden a la longitud: 4 (((Y ESTO TAMBIEN ME FALLA))))
4: casamitierra
6: casamitierra
7: casamitierra
10: casamitierra

"ayuda please" ocupo el codigo bien en Lenguaje C

#include<stdio.h>
#include<string.h>
int main()
{
char cadenas[10][100];
int longitud[10], cantidad=0, x, y, mayor=100;

for(x=1;x<=10;x++)
{
printf("ingresa una cadena %i: ",x);

scanf("%s",cadenas[x]);
longitud [x]= strlen(cadenas[x]);
}
for(y=1;y<=x;y++)
{
if(longitud[y]<=mayor)
{
cantidad=longitud[y];
cantidad=cantidad+1;
}
}
printf("longitud de cadena mayor %i\n",cantidad);
printf("cadenas que corresponden a la longitud: %i\n",mayor);
return 0;
}

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Re: programa en C

 

Para este problema, no es necesario que guardes las longitudes de cada cadena en otro arreglo. Lo que sí necesitas es dominar las estructuras de selección (if, if-else, etc.) para obtener la longitud máxima y cuántas cadenas tienen esa longitud, p.ej:

char array[10][100];
int i, max = 0, quantity;
for (i = 0; i < 10; i++) {
    printf("ingresa una cadena %i: ", i + 1);
    scanf("%s", array[i]);
    int length = strlen(array[i]);
    if (length > max) {
        max = length;
        quantity = 0;
    }
    if (length == max) {
        quantity++;
    }
}

Para la salida, imprime la longitud máxima encontrada, la cantidad y utiliza un ciclo para imprimir las cadenas que coincidan con esa longitud, p.ej:

printf("longitud de cadena mayor %i\n", max);
printf("cadenas que corresponden a la longitud: %i\n", quantity);
for (i = 0; i < 10; i++) {
    if (strlen(array[i]) == max) {
        printf("%i: %s\n", i + 1, array[i]);
    }
}

¡Por si sirve de algo!

~~~

gracias enserio y siii tengo

gracias enserio y siii tengo que dominar mas las estructuras te lo agradezco mucho

:D

:D