解一元二次方程(循环)

解一元二次方程(循环)

#include <stdio.h>
#include <math.h>

int main(int argc, const char * argv[])
{
    int a,b,c;
    double x1,x2;
    double delt;
    double m;
    int cnt;
    do{
        printf("请输入a=");
        scanf("%d",&a);
        printf("\n请输入b=");
        scanf("%d",&b);
        printf("\n请输入c=");
        scanf("%d",&c);
        if(a==0&&b==0){
            printf("\n无解");
        }else if(a==0&&b!=0){
            x1=-c/b;
            printf("\nx=%.2lf",x1);
        }else{
            delt=b*b-4*a*c;
            if(delt>=0){
                x1=(-b-sqrt(delt))/(2*a);
                x2=(-b+sqrt(delt))/(2*a);
                printf("x1=%.2lf,x2=%.2lf",x1,x2);
            }else{
                m=-b/(2*a);
                x1=sqrt(-delt)/(2*a);
                printf("\nx1=%.2lf-%.2lfi,x2=%.2lf+%.2lfi",m,x1,m,x1);
            }
        }
        printf("\n按1继续,按其他数字结束。请输入:");
        scanf("%d",&cnt);
    }while(cnt==1);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43266760/article/details/82824060