[C] problema con programma per la scomposizione in fattori

lorenzopari
Buongiorno.
Sto creando un programma per scomporre in fattori un numero però Code::Blocks 13.12 (il compilatore che uso) non me lo compila e mi da questo errore:


il codice è questo ovviamente non è ancora finito lo devo ulteriormente ampliare.
#include <stdio.h>
#include <math.h>

int main()
{
int n, c, resto, risultato;
int i=3;
printf("inserisci numero da scomporre\n");
scanf("%d", &n);
c=sqrt(n);
resto=n%2;
if (resto=0);
risultato=n/2;
printf("2\n");
else
    while (i<=c);
    {
    resto=n%i;
    if (resto=0);
    printf("%d\n", i);
    n=n/i;
    else
    i=i+2;
}

return 0;
}


se il codice va bene e quindi è il compilatore che non funziona potete segnalarmene altri grazie.

p.s. se qualcuno conosce un algoritmo più efficiente di quello che uso io me lo dica

grazie a tutti per l'aiuto

Risposte
apatriarca
Hai dimenticato di racchiudere il codice tra l'if e l'else tra parentesi graffe.. Ti consiglio di cercare di scriverle sempre.

lorenzopari
mi puoi far vedere come?

apatriarca
Per prima cosa togli immediatamente il punto e virgola che metti subito dopo le condizioni dell'if.. e poi scrivi gli if seguendo lo schema seguente:
if (condizione) {
    istruzioni da eseguire se la condizione è vera
} else {
    istruzioni da eseguire se la condizione è falsa
}

lorenzopari
ok adesso mi parte grazie tante

onlyReferee
L'if così come il for accettano anche il ; come istruzione presente rispettivamente nel corpo del then o del for stesso però lo stesso (noto come comando nullo) non produce alcun effetto ed è un comando a tutti gli effetti. Per questo motivo talvolta può capitare (anche se non è questo il caso) che il compilatore non segnali errore ma il programma non esegua le istruzioni presenti all'interno del blocco come invece si pensa.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.