且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

[C算法]一元二次方程求根

更新时间:2021-08-30 17:26:14

//

//  main.c

//  一元二次方程求解

//

//  Created by 丁小未 on 13-7-9.

//  Copyright (c) 2013年 dingxiaowei. All rights reserved.

//



#include <stdio.h>

#include <math.h>

float O(float a,float b,float c)

{

    float res = b*b-4*a*c;

    if(res<0)

    {

        return -1;

    }

    else

    {

        return res;

    }

}



int main(int argc, const char * argv[])

{

    float a,b,c;

    char flag='y';

    printf("*******欢迎使用一元二次方程求根系统***************\n");

    do

    {

    do {

        printf("\n`请输入一元二次方程的a,b,c参数(例如1,4,4):");

        scanf("%f,%f,%f",&a,&b,&c);

    } while (0==a);

    

    float res;

    float x,y;

    res=O(a, b, c);

    if (res<0)

    {

        printf("方程无解!");

    }

    if(b*b==4*a*c)

    {

        x=(-b)/2*a;

        printf("方程的解:X=Y=%.2f",x);

    }

    if(res>0)

    {

        x=(-b+sqrtf(res))/2*a;

        y=(-b-sqrtf(res))/2*a;

        printf("方程的解:\nX=%.2f\nY=%.2f",x,y);

    }

    printf("\n您想继续吗?(y/n)");

    flag = getchar();  //要输入两次是清除之前获取到的留在缓存中的'\n'

    flag = getchar();

    }while ('y'==flag);

    return 0;

}

[C算法]一元二次方程求根