Analizzare le singole cifre di un numero intero in C. RISOLTO

di il
4 risposte

Analizzare le singole cifre di un numero intero in C. RISOLTO

Ciao a tutti!!

Sto cercando di fare un esercizio nel quale il programma creato deve analizzare le cifre di un numero intero inserito dall'utente e dare in output la relativa cifra in italiano.
Esempio: Inserisco 1234 e sul terminale esce: uno due tre quattro.
Ci sono "un po' " riuscito , il problema è che l'unica maniera che ho di analizzare un numero è partendo dall'ultima cifra, così facendo però l'output di 1234 esce come quattro tre due uno.

Qualcuno riesce a darmi qualche suggerimento?

Grazie in anticipo!

P.S: Non posso utilizzare array, stringhe, puntatori ma solo i comandi di iterazione e decisione.

ecco il codice:

//Programma che accetta un numero intero e ne traduce le cifre in italiano.

#include <stdio.h>

int main(void) {
	
	int  numero, analizzato;
	
	printf("Inserisci un numero intero positivo: ");
	scanf("%i", &numero);
	
	do {
		analizzato = numero % 10;
	
		switch(analizzato) {
			case 1:
				printf("uno ");
				break;
			case 2:
				printf("due ");
				break;
			case 3:
				printf("tre ");
				break;
			case 4:
				printf("quattro ");
				break;
			case 5:
				printf("cinque ");
				break;
			case 6:
				printf("sei ");
				break;
			case 7:
				printf("sette ");
				break;
			case 8:
				printf("otto ");
				break;
			case 9:
				printf("nove ");
				break;
			case 0:
				printf("zero ");
				break;
			}
			
		numero /= 10;
		
		} while (numero != 0);
		
	printf("\n");
	
	return 0;
	}

4 Risposte

  • Re: Analizzare le singole cifre di un numero intero in C. RISOLTO

    Usa la sprintf per trasformare il numero in stringa. Esamina carattere per carattere la stringa dal primo e utilizza il carattere per puntare ad un vettore di stringhe per evitare lo switch.
  • Re: Analizzare le singole cifre di un numero intero in C. RISOLTO

    oregon ha scritto:


    Usa la sprintf per trasformare il numero in stringa. Esamina carattere per carattere la stringa dal primo e utilizza il carattere per puntare ad un vettore di stringhe per evitare lo switch.
    Il problema è che non posso utilizzare stringhe, puntatori o array ma solo iterazioni e decisioni.
  • Re: Analizzare le singole cifre di un numero intero in C. RISOLTO

    Siamo a livello di 4 operazioni/sQuole elementari.

    Come si fa a sapete quante cifre DECIMALI ha un numero?
    Come si fa a estrarre la cifra DECIMALE in posizione i-ma?

    Non saper fare queste cose (che non hanno NIENTE A CHE FARE con la programmazione) vuol dire:

    ...

    Non so cosa vuol dire, ma direi niente di buono.
    Sei sicuro che programmare sia una cosa che vorrai fare DA GRANDE?
  • Re: Analizzare le singole cifre di un numero intero in C. RISOLTO

    migliorabile ha scritto:


    Siamo a livello di 4 operazioni/sQuole elementari.

    Come si fa a sapete quante cifre DECIMALI ha un numero?
    Come si fa a estrarre la cifra DECIMALE in posizione i-ma?

    Non saper fare queste cose (che non hanno NIENTE A CHE FARE con la programmazione) vuol dire:

    ...

    Non so cosa vuol dire, ma direi niente di buono.
    Sei sicuro che programmare sia una cosa che vorrai fare DA GRANDE?
    Dai non scoraggiarmi troppo, sto cercando di imparare da zero, su un foglio di carta o a mente so estrarre una cifra decimale ma farlo su C è una cosa un attimino più difficile PER ME.....

    Comunque ho risolto seguendo il tuo consiglio un poco scoraggiante (facendo come si faceva alle elementari), quindi grazie mille!
Devi accedere o registrarti per scrivere nel forum
4 risposte