Per favore potete aiutarmi a capire dove ho sbagliato in questo codice C?

di il
4 risposte

Per favore potete aiutarmi a capire dove ho sbagliato in questo codice C?

Ho realizzato un codice C che ha diverse richieste tra cui l'ultima che dovrebbe far traferire dal vettore 1 al vettore 3 tutti i numeri del vettore 1 che, divisi nelle loro singole cifre e successivamente sommate diano risultati pari, quindi il vettore 3 deve contenere soltanto questi numeri.
Il problema è che invece di trasferire nel vettore 3 solo i numeri la cui somma delle cifre da risultati pari, mi trasferisce anche numeri la cui somma delle cifre da risultati dispari.
Io ho provato a ragionarci su, ma non riesco a capire dove ho sbagliato, se per favore mi potete aiutare anche solo con un piccolo input mi fareste un enorme favore.
Ringrazio in anticipo per chi mi aiuterà.
void SpostaCifre (int vett1 [], int vett3 [], int dim, int * cn)
{
    int i, num, j = 0, quo, res, s = 0;
    for (i = 0; i < dim; i++)
    { 
        num = vett1 [i];
        while (num >= 10)
        {
            quo = num / 10;
            res = quo * 10;
            s = s + (num - res);
            num = quo;
        }
        if (s % 2 == 0)
        {
            vett3 [j] = vett1 [i];
            j = j + 1;
            *cn = *cn + 1;
        }
    }
}

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte