[C] problema con programma per la scomposizione in fattori
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.
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
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
Hai dimenticato di racchiudere il codice tra l'if e l'else tra parentesi graffe.. Ti consiglio di cercare di scriverle sempre.
mi puoi far vedere come?
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 }
ok adesso mi parte grazie tante
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.