注册 登录
编程论坛 C语言论坛

入门小白一夜白头,原因竟是.............

沈楠麒 发布于 2020-03-09 22:27, 1327 次点击
利用循环结构,是的用户输入一元二次方程(也可以abc均为0,退出循环)每次循环过程中,用户输入一元二次方程的系数abc,输出方恒的根,本题可分为两个阶段,第一阶段,只处理实数根,第二阶段,处理复数根。 每一次循环解一道一元二次方程,具体几次循环不确定。
小白已秃头,求大神怜惜。
小白再叩首!!
1 回复
#2
纯蓝之刃2020-03-09 22:59
程序代码:
#include <stdio.h>
#include <math.h>

int main()
{
    float a,b,c,temp;
    float x1,x2,i;

    while(1)
    {
        printf("请输入a,b,c:");
        scanf("%f%f%f",&a,&b,&c);
        if(a<=0.0001&&a>=-0.0001&&b<=0.0001&&b>=-0.0001&&c<=0.0001&&c>=-0.0001)
            break;

        temp=b*b-4*a*c;
        printf("方程%fx*x+%fx+%f的解是:",a,b,c);

        if(temp>=0)
        {
            x1=(-b-sqrt(temp))/2/a;
            x2=(-b+sqrt(temp))/2/a;
            printf("x1=%f,x2=%f\n\n",x1,x2);
        }
        else
        {
            i=sqrt(-temp)/2/a;
            x1=-b/2/a;
            printf("x1=%f+%fi,x2=%f-%fi\n\n",x1,i,x1,i);
        }
    }
    return 0;
}


[此贴子已经被作者于2020-3-9 23:03编辑过]

1