Originariamente inviato da Zeldic
Potete gentilmente dirmi solo se è possibile svolgere questo esercizio in C, perché io lo trovo assurdo :
"Convertire un numero fra 1 e 999 in lettere (es : converto 756 in SETTECENTOCINQUANTASEI).
Cosa c'è di assurdo?? Non ti serve nessuna libreria, solo far funzionare la logica..
Se tu sai a priori che il numero è più piccolo di 1000, con una atoi o con una itoa meglio (dipende poi da come ottieni il numero). A seguire fai un scanning dell'array, sono al massimo 3 elementi (999)..
Da qui:
codice:
void hundreds(char i)
{
...
if(i == '7')
printf("Settecento");
...
}
...
int main(void)
{
int i, number;
char str_number;
...
for(i = 0; i < strlen(str_number); i++)
{
/*if strlen(str_number) == 3 */
/* if i == 0 */
hundreds(str_number[i]);
...
}
Ovviamente il codice è buttato giù così al momento, ma spero che renda l'idea..
Poi ovviamente invece di stampare "Settecento" direttamente puoi implementare 3 char *arrays[] per le scritte.. L'esercizio è più che fattibile..
La prima cosa che mi viene a mente poi è come potrebbe il compilatore tradurre in italiano un numero, e se io invece fossi un'utente inglese, o tedesca??