Salve a tutti, vorrei che mi spiegaste dov'è che sbaglio in questo programma scritto in C per trovare i divisori di un numero intero.
Quando lo compilo succede questo:

Inserisci un numero: 8
Program received signal: “EXC_BAD_ACCESS”.
sharedlibrary apply-load-rules all
(gdb)

il codice è il seguente:

#include <stdio.h>
#include <math.h>

main()
{
int a,c,d,r,f;
c=0;
f=(a/2)+1;
printf("Inserisci un numero: ");
scanf("%d", a);

printf("I divisori sono: ");
do
{
++c;
r=a%c;
d=a/c;

if (r==0) printf("%d\n", d);
}
while (c=!f);
}


Grazie a chi saprà darmi una mano :]