Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: celest275. en 13 de Marzo 2017, 04:09

Título: Cuenta palabras y letras en C (lenguajeC) determinar número de vocales en cadena
Publicado por: celest275. en 13 de Marzo 2017, 04:09
Hola necesito:
Escribir un programa que solicite al usuario ingresar una cadena larga formada por varias palabras, el programa debe determinar lo siguiente:

1-numero de palabras en la cadena
2-cuantas vocales tiene la cadena
3-la letra que aparece en mas palabras (letra y en cuantas palabras)
4-la letra que mas aparece en toda la frase (letra y cuantas veces)

hasta el  momento he logrado los primeros 2 incisos, pero no se como hacer el 3 ni el 4, se los agradecería mucho si me ayudaran un poco.

Código: [Seleccionar]
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int contar_vocales(char *);
 
int main(){
char cad[500],*p;
int longi,i,x,b,R,V,longinP,len;
 
printf("Ingrese un texto: ");
gets(cad);
longi = strlen(cad);
 
//-------------------------------Contador palabras------------------------------
b=0;
for(x=0;x<longi;x++){ //rrecorre la longitud de la cadena
 if(cad[x]==' ' && x!=499 && cad[x+1]!= ' '){
  b++;
  }
}
printf("\nCantidad de Palabras: %d",b+1);
//--------------------------------cantidad------------------------------------
 
printf("\nCantidad de Vocales: %d",contar_vocales(cad));
V = contar_vocales(cad);
printf("\nCantidad de caracteres: %d",longi-b);
longinP= longi-b;
 
 
 
 
 
    getch();
}//Main -CuerpoPrincipal-
//--------------------------------Funcion---------------------------------------
 
int contar_vocales(char *cad){
 
int cont=0;
char *aux=cad;
 
while(*aux){
   if(*aux=='a'||*aux=='e'||*aux=='i'||*aux=='o'||*aux=='u')
     cont++;
       aux++;
   }//funcion
 
return cont;
 
}//contar_vocales
 
Título: Re:Cuenta palabras y letras en C (lenguajeC) determinar número de vocales en cadena
Publicado por: Ogramar en 20 de Mayo 2017, 22:16
Buenas, este código serviría para contar la frecuencia de aparición de letras:

Código: [Seleccionar]
#include <stdio.h>
#include <string.h>
 
void find_frequency(char [], int []);
 
int main()
{
   char string[100];
   int c, count[26] = {0};
 
   printf("Input a string\n");
   gets(string);
 
   find_frequency(string, count);
 
   printf("Character Count\n");
 
   for (c = 0 ; c < 26 ; c++)
      printf("%c \t  %d\n", c + 'a', count[c]);
 
   return 0;
}
 
void find_frequency(char s[], int count[]) {
   int c = 0;
 
   while (s[c] != '\0') {
      if (s[c] >= 'a' && s[c] <= 'z' )
         count[s[c]-'a']++;
      c++;
   }
}

Salu2