Sono tre giorni che sto su questo algoritmo e non riesco a capire cosa non vada...

codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main ()
{
         printf("Inserisci il numero intero\n");
         int n,s,conta,resto,cambia;
         conta=0;resto=0;s=0;cambia=0;
         scanf("%d",&n);
         do {
                       resto = n%2;
                       n=floor(n/2);
                       if (cambia = 0)
                       {
                                  if (resto=0)
                                  {
                                  }
                                  else
                                  {
                                      cambia=1;
                                  }
                       }
                       else
                       {
                           if (resto=0)
                           {
                               resto=1;
                           }
                           else
                           {
                               resto=0;
                           }
                       }
                       s=s+resto*pow(10,conta);
                       conta++;
         } while (n!=0);
         printf("%d \n",s);
         system("PAUSE");
         return 0;
         
}
Il risultato è che inserendo qualsiasi numero che sia paro o dispari, il programma stampa "0"

Chiedo il vostro aiuto per la soluzione

Grazie