Programación General > C/C++
Re: Reto
(1/1)
tenesor:
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;
}
---------------------------------------------
rafael:
: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:
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]
bench:
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]
Navegación
Ir a la versión completa