试试这个:同问个问题,如何把一元二次方程的那个平方2显示到X的右上角,我只能打成X2,
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
int a,b,c;float d;
//a,b,c为一元二次方程的3个系数,d为根判别式
float p,q;
//计算虚数根用
float x1,x2;
//方程式的两个根
const char i='i';
//虚数单位
char ag='y';
//判断重复计算
int ag1;
do{
system("cls");
printf("此程序为求解形如ax2+bx+c=0(a≠0)一元二次方程的根.\n\n");
printf("仅用于人工解题后核对答案之用,切不可用来为了得到答案用来解题\n\n");
printf("请依次输入二次项系数 a\n\n");
printf("请依次输入一次项系数 b\n\n");
printf("请依次输入常数项 c\n\n三数间敲击Enter间隔\n");
fflush(stdin);
//清空缓存
scanf("%d %d %d",&a,&b,&c);
printf("\n此时方程为%dX2+%dX+(%d)=0\n\n",a,b,c);
d=b*b-(4*a*c);
printf("此时根判别式△=b*b-(4*a*c)=%f\n\n",d);
printf("按Enter即可得出结果\n\n");
getch();
if(d>=0)
{
if(d==0)
{
x1=-b/(2*a);
x2=x1;
printf("此方程式有两个相等的实数根x1=x2=%f\n\n",x1);
}
else if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("此方程式有两个不相等的实数根x1=%f,x2=%f\n\n",x1,x2);
}
}
else
{
printf("因为△<0,故此方程式根为虚数\n\n");
p=-b/(2*a);
q=sqrt(-d)/(2*a);
printf("方程有两个虚数根,虚数单位为i\n\n");
printf("虚根X1=%f+%fi\n\n",p,q);
printf("虚根X2=%f-%fi\n\n",p,q);
}
printf("是否再次计算 y or n!\n\n");
fflush(stdin);
scanf("%c",&ag);
if(ag=='n'||ag=='N')
ag1=0;
else if(ag=='y'||ag=='Y')
ag1=1;
}while(ag1);
return 0;
}