Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Estadisticas de cantidad de caracteres en C

Estas en el tema de Estadisticas de cantidad de caracteres en C en el foro de C/C++ en Foros del Web. Hola. He creado hace un momento un post para solucionar un problema para eliminar caracteres, y si pudiera cambiar el titulo del post, publicaria esto ...
  #1 (permalink)  
Antiguo 24/11/2011, 19:55
Avatar de AlmaVagabunda  
Fecha de Ingreso: noviembre-2011
Ubicación: San Juan De Alicante, Valenciana, Spain, Spain
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Estadisticas de cantidad de caracteres en C

Hola.
He creado hace un momento un post para solucionar un problema para eliminar caracteres, y si pudiera cambiar el titulo del post, publicaria esto en el mismo, pero para evitar confusiones y facilitar la busqueda a alguien que tenga la misma duda lo hago aparte.

Esta funcion, deberia dar el porcentaje de vocales en una cadena que recibe, y tambien otros caracteres alfabeticos, tantos mayusculas como minusculas, y caracteres no alfabeticos (numeros y caracteres especiales)

Pero me salen valores que nada tienen que ver, y me vuelvo loco.
Suele funcionar que el codigo lo vea otro para encontrar errores, espero tener suerte y que alguien me lo solucione.

Muchas gracias a todos los que colaboran en este foro.

El codigo:
Código C:
Ver original
  1. //Funcion de estadisticas
  2. void Estadisticas(char frase[]){
  3.     system("cls");
  4.     int a,i,vocales,c;
  5.     float numero,k;
  6.     a=strlen(frase);
  7.  
  8.     printf("\n\nESTADISTICAS\n\n\n");
  9.     printf("\nNumero de caracteres: %d",a);
  10.     vocales=0;
  11.     for(i=0;i<strlen(frase);i++){
  12.         if(frase[i]=='a'){
  13.             vocales++;
  14.         }
  15.     }
  16.     numero=(vocales*100)/a;
  17.     printf("\nVocales: %2.2f",numero);
  18.  
  19.     c=0;
  20.     for(i=0;i<a;i++){
  21.         if(frase[i]>='a' && frase[i]<='z'){
  22.             c++;
  23.         }
  24.     }
  25.     numero=(c*100)/a;
  26.     printf("\nOtros caracteres alfabeticos: %2.2f",numero);
  27.  
  28.     k=(a-vocales-c*100)/a;
  29.     printf("\nCaracteres no alfabeticos: %2.2f\n\n\n\n",k);
  30.     system("pause");
  31.     system("cls");
  32.     return;
  33. }
  #2 (permalink)  
Antiguo 24/11/2011, 20:53
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Estadisticas de cantidad de caracteres en C

Veo que las matematicas no son lo tuyo:
k=(a-vocales-c*100)/a;
Los signos + y - separan terminos. Deberia ser:
k=(a-vocales-c)*100/a;

Y otra aclaracion. Cuando divides numeros enteros el resultado es entero. Si luego se lo asignas a un flotante, la parte entera ya se perdio. Por eso te recomiendo agregarle el .0 al 100 para convertir toda la expresion a decimal:

k=(a-vocales-c*100.0)/a;
  #3 (permalink)  
Antiguo 25/11/2011, 02:53
Avatar de AlmaVagabunda  
Fecha de Ingreso: noviembre-2011
Ubicación: San Juan De Alicante, Valenciana, Spain, Spain
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Estadisticas de cantidad de caracteres en C

jajaja sam90, suelo ser bueno en matematicas, pero despues de escribir tanto codigo, la cabeza ya no se da cuenta de nada, me hace falta practicar.

Ya lo he arreglado y funciona a la perfeccion.

Muchisimas gracias de nuevo ;)
Un abrazo

Etiquetas: cantidad, caracteres, estadisticas, funcion, numeros, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:22.