mis a part le fait que faire la moitié des calcul avec des int et l´autre avec des double est très moche ( tu peut y perdre en précision selon la manière dont il convertit), le vraie problème n´est pas un problème de logique, seulement l fonction getc fait ce que son nom dit : get caracter et nom pas get number.
utilise scanf("%i",&); à la place et ça marchera parfaitement.