Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Alex Seahorse en 19 Abril 2012, 19:27 pm



Título: Apuntadores, calcular cuantas vocales, consonantes y letras tiene un texto.
Publicado por: Alex Seahorse en 19 Abril 2012, 19:27 pm
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.


Título: Re: Apuntadores, calcular cuantas vocales, consonantes y letras tiene un texto.
Publicado por: Alex Seahorse en 19 Abril 2012, 20:23 pm
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...