[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.