il primo if è corretto infatti, come hai detto tu,
se la prima cifra è maggiore della seconda il programma
funziona.

l'errore sta nell'else if, questo:

codice:
else if (c1 = c2)
è un errore.

in C '=' equivale ad un assegnamento: l'espressione "c1 = c2"
assegna a 'c1' il valore di 'c2', che diventa anche il valore dell'espressione.

Ora, se 'c2' è uguale a zero (e 'c1' < 0), l'espressione viene
valutata come falsa ed il programma prosegue correttamente, ma, in tutti
gli altri casi, l'espressione risulta vera e viene eseguita la parte di codice
corrispondente.

tutto questo per dirti che avresti dovuto usare
'==', al posto di '='

codice:
else if (c1 == c2)
che compie un test sull'uguaglianza dei due valori