• Sábado 14 de Diciembre de 2024, 09:41

Autor Tema:  Re: Reto  (Leído 2891 veces)

tenesor

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Reto
« en: Jueves 21 de Febrero de 2002, 21:09 »
0
Bueno Kenshin, solo era una idea y el reto no era mas que un ejemplo para explicarlo, pero ya que lo has hecho, se agradece...

Yo no he encontrado ninguna forma de acortar mas el codigo, pero seguro que habra alguna.
Aqui te  pongo unos pequeños retoques que hice para que fuera un poco mas interactivo, en vez de que la semilla del rand sea fija, que el usuario la elija.


Saludos,
  Teneosr


Para los que no saben de que viene esto, mirar el tema "Saludos", alli teneis la respuesta:)


---------------------------------------------
// C++

#include <iostream.h>
#include <time.h>
#include <stdlib.h>

main()
{
  int num_aleatorio, suma=0, par=0, cont=0;
  long int num_cifras;

  srand(time(0));

  cout << "Escriba un numero para realizar el calculo de numeros aleatorios: ";
  cin >> num_cifras;

  for(int i=0;i<5;i++)
  {
     num_aleatorio=rand()%num_cifras;
     cout  << endl << "Numero " << cont << ": " << num_aleatorio;
     suma +=num_aleatorio;
     cont++;
     if((num_aleatorio%2)==0)
         par++;
  }

  cout << endl << endl << "Suma: " << suma << endl << "Pares: " << par << endl;

  system("PAUSE");
  return 0;
}
---------------------------------------------
Que el toro estoque al matador, que el preso enciere al guardián, que solo sean de cerveza los tanques, que el pez pesque al pescador y que el tigre dome al domador, que la television se prohiba y el hachis se legalice, que africa sea tierra mágica y no trágica... cambiando el mundo [NS]

rafael

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Reto
« Respuesta #1 en: Viernes 22 de Febrero de 2002, 06:38 »
0
:PAqui va otro reto (talvez muy simple).

Tenemos una cadena conteniendo varias palabras separadas por uno o mas espacios como por ejemplo:

 Luis  Fdggg Juan nnnn   gfhfhfh Rlkd

El problema consiste en obtener las iniciales de cada palabra y colocarlas en otra cadena. Para el ejemplo la respuesta seria una cadena conteniendo:

 LFJngR

Simple. ¿Verdad...?

tenesor

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Reto
« Respuesta #2 en: Viernes 22 de Febrero de 2002, 18:21 »
0
Creo que ese programa ya lo hice, pero por pereza no me he puesto a buscarlo...:)

Pero bueno, que tal asi? Este lo he probado en linux y esta en ANSI C, asi que no creo que se tenga problemas con los windozes.

Saludos,
 Tenesor
---------------------------------------------

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

main()
{
      char frase[100],inicial[20];
      int contfra,contini, num_frase;

      Printf("Introduce tu frase: ");
      gets(frase);


      for(contfra=0; frase[contfra]==" "; contfra++);
      {
        contfra++;
        if((frase[contfra])!=" ")
                inicial[0]=frase[contfra];
      }

      num_frase = strlen(frase);
      contini=1;
      for(contfra=1;contfra==num_frase;contfra++)
      {
          if(frase[contfra]=" ")
          {
            contfra+1;
            if(frase[contfra]!=" ")
            {
              inicial[contini]=frase[contfra];
              contini++;
            }
          }
      }


      inicial[contini]="";
      printf("nLas iniciales de la frase son: %sn",toupper(inicial));

}

---------------------------------------------

PERDON!!! He editado el programa porque se me habia olvidado pasarlo a mayusculas!!!
(En el ultimo printf, el "toupper(inicial)" pasa a mayusulas el caracter o caracteres de esa variable-array)

[Modificado el 2/22/02 por tenesor]
Que el toro estoque al matador, que el preso enciere al guardián, que solo sean de cerveza los tanques, que el pez pesque al pescador y que el tigre dome al domador, que la television se prohiba y el hachis se legalice, que africa sea tierra mágica y no trágica... cambiando el mundo [NS]

bench

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Reto
« Respuesta #3 en: Sábado 23 de Febrero de 2002, 19:24 »
0
El Mismo Programa
  Pero Con Matematica de Punteros, Un Codigo
Mas complejo Pero Incrementa la Eficiencia.

  No Lo he compilado asi que Puede Tener errores.


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

main()
 {
  char Buffer[100];
  char *Punt = Buffer;
  char Iniciales[20];
  char *Punt_I = Iniciales;
  char Len_I = 19; /* Max Nro de Palabras */

  Printf("Introduce tu frase: ");
  gets(Buffer);

  /***
  Se Posiciona el Puntero en el Primer
  Caracter NO En Blanco
  *********************/
  while((*Punt == ´ ´) && *Punt) Punt++;
  /***
  Se Valida Si la Linea Esta en Blanco
  ***********************************/
  if(!(*Punt)) return;
  /***
  Se Toman Las Iniciales
  *********************/
  *Punt_I++ = *Punt;
  I--;
  while(I)
   {
    /***
    Se Avanza Hasta el Primer Espacio
    ********************************/
    while((*Punt != ´ ´) && *Punt) Punt++;
    /***
    Se Avanza Hasta el Primer Caracter
    *********************************/
    while((*Punt == ´ ´) && *Punt) Punt++;
    /***
    Se Sale Si Termino la Frase
    **************************/
    if(!(*Punt)) break;
    /***
    Se Toman las Iniciales y Se Avansa el
    Puntero de las Iniciales
    ***********************/
    *Punt_I++ = *Punt;
    I--;
    } /* Fin del While Principal */
  /***
  Se coloca el Indicador "/"
  *************************/
  *Punt_I = 0x00;
  /***
  Se Imprimen las Iniciales en mayusculas
  **************************************/
  printf("nLas iniciales de la frase son: %sn",toupper(Punt_I));
  }

---------------------------------------------

 

[Modificado el 2/23/02 por bench]