Programma prova del 9

di Anonimizzato15475 il
4 risposte
Buonasera a tutti...
Il programma in questione è la "Prova del 9"...L' utente inserisce due valori di 4 cifre (Da moltiplicare) e un terzo valore di 8 cifre che dovrebbe essere il presunto risulatato della moltiplicazione dei valori iniziali...Il compito del programma è quello di fare le radici numeriche dei 3 valori, moltiplicare le radici dei valori iniziali e uguagliare il risulatato con la radice del terzo valore...Se sono uguali allora il valore del risultato della moltiplicazione immesso all' inizio era giusto ...al contrario se sono diversi significa che il risultato della moltiplicazione era sbagliato.
Es: Valore 1: 1234 = 1+2+3+4 =10 = 1 + 0 = 1
Valore 2: 5678 = 5+6+7+8 = 26 = 2 + 6 = 8
Valore 3: (Risultato motiplicazione) = 7006652 = 7+0+0+6+6+5+2= 26 = 2 + 6 = 8
8 * 1 = 8 La prova del 9 è verificata.
Il mio problema sta nel fare la radice numerica dei numeri immessi...Sono riuscito a fare la somma delle cifre del numero una volta sola per es 1234 = 1+2+3+4 = 10 ma non riesco ad andare avanti cioè a fare 10 = 1+0
Grazie in anticipo.

4 Risposte

  • Questa è una possibile idea:
    
        /* qui fai la somma che dici di essere riuscito a fare */
    
        int num = 19;
        int somma_cifre = num;
    
        while(somma_cifre > 9)    /* controllo se il numero ha due cifre */
        {
            int decine = (int)(somma_cifre/10);   /* faccio la divisione per 10 e tronco il risultato */
            int unita = somma_cifre-10*decine;
            somma_cifre = decine + unita;
        }
    
        printf("Somma delle cifre: %d\n", somma_cifre);
    
    Continui a fare la somma finché la somma delle cifre non è minore di 10. A questo punto sei sicuro che il risultato sia formato da una sola cifra.
  • Mostra il codice che hai scritto ...
  • #include <stdio.h>
    
    int main(){
    int add1, rad1;
       printf("Inserisci il primo valore (Deve essere di 4 cifre) della somma :\n");
                   scanf("%d", & add1);
    
                                        while (add1!=0){
                                        rad1=rad1 + add1 %10;
                                        add1 = add1 / 10;
                                        }
     printf("La somma delle cifre del primo numero e' : %d \n", rad1);
    
    return 0;
    }
    
  • Ho risolto grazie mille!!
Devi accedere o registrarti per scrivere nel forum
4 risposte