Ödev gereği ax^2+bx+c=0 denkleminin köklerini hesaplayan bir program yapmam istendi C'de. Programda sorun yok gayet düzgün biçimde çalıştırıyor. Ama verilen şemada discriminant < 0 değerinde "I" değişkeni var. Bu değişkenin değeri yok char olarak tanımladım, sadece harf alması için. Fakat koda bunu eklediğim zaman doğru çıkan kodum hata veriyor. Sırasıyla 1-4-8 değerlerini girdiğim zaman almam gereken root sonuçları 0 ve -4 olması gerekirken "I" yüzünden -2 ve -2 alıyorum. Bunu nasıl çözebilirim?
"I" değikeninin bir amacı yok, sadece kodda olması gerekiyor. Değer atamıyoruz. Hoca kodda olacak diye tutturdu ki internette tonlarca örneğin hiçbirinde bu değişkeni eklememişler. Yardım bekliyorum

CODE alanı ters slash'ı kabul etmiyor, okunurluk azalmış :/
#include <stdio.h>
#include <math.h>
void main() {
int a, b, c;
double root1, root2, d, realroot;
char I;
printf ("Please enter a number A: ", a);
scanf("%d", &a);
printf("Please enter a number B: ", b);
scanf("%d", &b);
printf("Please enter a number C: ", c);
scanf("%d", &c);
//d=discriminant
d=(b*b-4*a*c)/4*a*a;
if (a!=0){
if (d<0){
printf("nCalculate discriminant: %.2lf", d);
root1= -b/2*a+I*sqrt(-d);
root2= -b/2*a-I*sqrt(-d);
printf("nTwo Complex Solutionnroot1: %.1lftroot2: %.1lf", root1, root2);
}
else if (d>0){
printf("nCalculate discriminant: %.2lf", d);
root1=-b/2*a+sqrt(d);
root2=-b/2*a-sqrt(d);
printf("nTwo Real SolutionnRoot1: %.1lftRoot2: %.1lf", root1, root2);
}
else {
printf("nCalculate discriminant: %.2lf", d);
realroot=-b/2*a;
printf("nReal SolutionnReal Root: %.1lf", realroot);
}
}
if(a==0){
if(b!=0){
realroot=-c/b;
printf("nReal SolutionnReal Root: %.1lf", realroot);
}
else if(b==0){
if (c==0){
printf("nEvery number is solution...");
}
else if(c!=0){
printf("nNo solution...");
}
}
}
printf("nn...End of The Program...");
}