como generar letras en wxdev c++

Scottie

pues eso, necesito hacer un ejercicio de generar letras aleatoriamente y no tengo npi.

generando numeros aleatoriamente me manejo, pero con las letras es que no se ni por donde empezar.

aqui os dejo un ejemplo, hecho para generar numeros, os agradeceria si me lo modificaseis o me dijeseis que tendria que modificar en el "rand()% 100".

ejercicio
MrPaytoN

Pues básicamente mirando el código ASCII.

Las letras mayúsculas están entre la 65 y la 90. Las minúsculas entre 97 y 122.

La expresión para sacar letras aleatorias es :

int c;
c=65+random(25);
printf("%c",c);

o

int c;
c=97+random(25);
printf("%c",c);

Un saludo.

PD. Edit normalmente no se pone el IDE/Compilador que usas , se pone el lenguaje en el que estás trabajando... xD

maRc

Antes que utilizar el valor númerico para referirse a una letra, como 65 para la A, es mejor utilizar el literal, con 'A'. Así queda más claro.

Scottie

vale vale, pues es en C.

el compilador no me reconoce "random", hay que utilizar alguna libreria en especial?

MrPaytoN

Pon en las declaraciones.

randomize();

Según mi IDE está en...

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

Y sobre lo que dice #3.

Puedes tambien usar(y sería más correcto xD)

c=int('A')+random(25);
Scottie

simplificando el ejemplo al maximo, pongo esto:

spoiler

me da de error "random was not declared in this scope". si no me equivoco es que falta alguna libreria no?

pd: aclaro que estoy empezando con esto y soy bastante novato.

MrPaytoN

Que raro.Igual será otra sintaxis en ese compilador.Prueba añadir

randomize(); o si no rand()% 25;

spoiler
Scottie

bien, asin funciona:

spoiler

pero no consigo aplicarselo a este ejercicio:

spoiler



y otra cosa mas, para poner que solamente sean letras en el rand()% 65 no deberia de ser rand()% 65>>90;

joder, siento ser pesado, pero es que tengo que entregar este ejercicio para el lunes y soy un jodido noob...

MrPaytoN

tabla=c; Aquí está el error. No puedes asignar un valor a la tabla sin poner el índice. Lo correcto ahí sería.

tabla[i]=c;
naete

Si he conseguido comprender lo que necesitas creo que se parece a esto.

spoiler

No sé si tirará, hace mil que no uso C. Sorry si no te sirve de ayuda :/

Scottie

vale, naete ha dado en el clavo.

ahora solo queda averiguar lo ultimo, como hacer que valla que el random valla del 65 al 90 :S

y gracias a mrpayton, marc y naete por ayudarme ^^

naete

x=(rand()%90)+65

Creo que va así, pero no estoy seguro: rand()% [máx] + [min]

Scottie

nada naete, cada vez que ejecuto me sale lo que quiere... :S

W

prueba con

letra = abs( rand() )%90+65;

y luego pasar letra que sera un numero a CHAR.

Scottie

solucionado, solo bastaba con poner:

tabla = 65 + rand()%26;

gracias a todos, en especial a mrpayton y a naete por ayudarme ^^

naete

#15 pa eso estamos =)

elkaoD

rand() % (max - min + 1) + min

EDIT: ostia, tenia la pestaña abierta de ayer y creía que no había contestado nadie aún

Usuarios habituales

  • elkaoD
  • naete
  • Scottie
  • willy__chaos
  • MrPaytoN
  • maRc