Apuntadores, calcular cuantas vocales, consonantes y letras tiene un texto.

Iniciado por Alex Seahorse, 19 Abril 2012, 19:27 PM

0 Miembros y 1 Visitante están viendo este tema.

Alex Seahorse

Hola de nuevo amigos del foro, bueno ahora vengo con este pequeño problema que me ha surgido, ya que el pasado tema de arreglos fue todo un éxito, me gustaría saber como se puede hacer dicho programa pero usando apuntadores en Dev.

De antemano se los agradecería mucho y pues les dejo mi código normal, para que más o menos se den una idea de lo que estoy buscando.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char c='l',texto[200];
    int x=0, cont_voc=0, cont_cons=0, cont_pal=0, cont_car=0,a=0,e=0,i=0,o=0,u=0;
    while(c!='.')
    {
          c=getchar();
          texto
=c;
          x++;
         
          if(c==' '||c=='.')
          cont_pal = cont_pal +1;
          if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='A'||c=='E'||c=='I'||c=='O'||c=='U')
          cont_voc = cont_voc +1;
          else
          cont_cons = cont_cons +1;
          switch(c)
          {
          case 'a':
          case 'A':
          a=a+1;
          break;
          case 'e':
          case 'E':
          e=e+1;
          break;
          case 'i':
          case 'I':
          i=i+1;
          break;
          case 'o':
          case 'O':
          o=o+1;
          break;
          case 'u':
          case 'U':
          u=u+1;
          break;                             
          }
    }
    cont_cons = cont_cons - cont_pal;
    texto
='\0';
    system("cls");
    printf("\n\n%s\n\n",texto);
    printf("TOTAL DE VOCALES: %d\n",cont_voc);
    printf("TOTAL DE CONSONANTES: %d\n",cont_cons);
    printf("TOTAL DE PALABRAS: %d\n\n\n",cont_pal);
    printf("TOTAL DE LETRAS A: %d\n",a);
    printf("TOTAL DE LETRAS E: %d\n",e);
    printf("TOTAL DE LETRAS I: %d\n",i);
    printf("TOTAL DE LETRAS O: %d\n",o);
    printf("TOTAL DE LETRAS U: %d\n",u);               
    system("PAUSE");
    return EXIT_SUCCESS;
}

Saludos.

Alex Seahorse

Más o menos me va quedando así:

#include <string.h>
#include <stdio.h>
#include <cstdlib>
#include <iostream>

using namespace std;

void inicio()

        {
         int ji=0, conti=0,i=0;
            int res=0,edad=0,filas=0;
         int a=0;
            int id_cont = 1;
            int respuesta=0;
            char nombres[50][20],nom[20];
            double peso;
           
         int ID[50];
            int fecha[50]={0};
            int estatura[50];
   
            do
            {
            system("cls");
                printf("Elija una opcion: \n\n");
                printf("1.- Altas\n");
                printf("2.- Bajas\n");
                printf("3.- Reporte Individual\n");
                printf("4.- Reporte General\n");
                printf("5.- Salir \n\n");
            scanf("%d",&a);
            int f = 0;
                switch (a)
                {
                    case 1:
                        for (ji = 0; ji <= 49; ji++)
                        {
                       
                        }
                        int b;
                        printf("Cuantos datos va a ingresar:? \n\n");
                        scanf("%d",&b);
                     
                        for(filas=0;filas<b;filas++)
                        {
                            system("cls");
                            printf("Introduzca el nombre:  %d  \n\n",filas+1);
                            scanf("%s",&nombres[filas]);
                            printf("Ano de nacimiento: \n\n");
                     scanf("%d",&fecha[filas]);
                            printf("Estatura en centimetros: \n\n");
                            scanf("%d",&estatura[filas]);
                            ID[filas] = id_cont;
                            id_cont++;
                           
                        }
                       
                  respuesta=1;
                  
                        break;
                       
                    case 2:
                  int id_eliminar;
                        printf("Que nombre desea eliminar? \n\n");
                  scanf("%d",&id_eliminar);
                        for (i = 0; i < 50; i++)
                        {
                           
                            if (ID == id_eliminar)
                            {
                                printf("Registro Eliminado \n\n");
                            }
                            else
                            {
                                ID[f] = ID;
                             
                                fecha[f] = fecha;
                                estatura[f] = estatura;
                                f++;
                            }
                        }
                  system("PAUSE");
                  respuesta=1;
                            break;
                           
                    case 3:                       
                        do
                        {
                            printf("Que nombre desea ver?");
                                int id_consulta=0;
                        scanf("%d",&id_consulta);
                                id_consulta = id_consulta - 1;
                                edad = 2012 - fecha[id_consulta];
                                double peso = ((estatura[id_consulta] - 100) * .90);
                                printf("ID\t Nombre\t Edad\t Año de Nacimiento\t Estatura\t peso\n");
                                printf("%d\t %s\t %d años\t %d\t\t %d\t\t %.2f\n", ID[id_consulta], nombres[id_consulta], edad, fecha[id_consulta], estatura[id_consulta], peso);
                                printf("Desea ver otro dato? (1)si (0)no\n");
                        scanf("%d",&res);
                        } while ( res == 1);
                        break;
                       
                    case 4:
                        int j,cont;
                        cont = 0;
                        for (j = 0; j <=49; j++)
                        {
                       
                     if (ID[j]>0)
                     {
                        cont++;
                     }
                     else
                     {
                     }
                        }
                       
                       printf("ID\t Nombre\t Edad\t Ano de nacimiento\t Estatura\t Peso\n");
                       
                        for (i = 0; i < cont;i++ )
                        {
                            edad = 2012 - fecha;
                            peso = ((estatura - 100) * .90);
                            printf("%d\t %s\t %d años\t %d\t\t %d\t\t %.2f\n",ID, nombres, edad, fecha, estatura, peso);

                        }
                       
                  system("PAUSE");
                  respuesta=1;
                        break;
                       
               case 5:
                  respuesta=0;
                  break;
                }   
            }
            while ( respuesta == 1);
        }
int main(int argc, char *argv[])
{
    inicio();
    system("PAUSE");
    return EXIT_SUCCESS;
}

Aunque en la opción 4 me sale basura...

Ya me bloquee...