倒数第4行虚数单位“i”应该作为字母来显示你却声明为双精度数,默认值是0,又与虚部相乘,显示结果当然是0了改成这样吧else printf("%.2f ± %.2f i",-b/a/2,sqrt(-x)/a/2);