无聊发个求一元二次方程的代码
											这是vc++/CLR代码,用vs的同学该知道怎么创建项目和编译,编译不了也没关系,代码干什么和怎么干的,一目了然,用自己的方法,也能照着做出同样的事。要移植为非托管代码的,自己写出类似的替代函数就可以了,因为需要划分的功能是一样的。 程序代码:
程序代码:
#include "stdafx.h"
using namespace System;
Double GetCoefficient(String^ tips);        // 交互获取方程系数
Int32 main(array<String^>^ args)
{
    Console::Title = L"一元二次方程的解";
    Console::Clear();
    Double coefficient_A, coefficient_B, coefficient_C;
    while ((coefficient_A = GetCoefficient(L"\n请输入二次项系数(输入零结束程序) A: ")) != 0)
    {
        coefficient_B = GetCoefficient(L"请输入一次项系数 B: ");
        coefficient_C = GetCoefficient(L"请输入常数项系数 C: ");
        Console::Clear();
        Console::WriteLine(L"您需要求解的方程是:{0} * x^2 + {1} * x + {2} = 0", coefficient_A, coefficient_B, coefficient_C);
        Double delta = coefficient_B * coefficient_B - 4 * coefficient_A * coefficient_C;
        if (delta == 0)
        {
            Double theUnknown = - coefficient_B / (2 * coefficient_A);
            Console::WriteLine(L"方程的根为: {0:F4}", theUnknown);
        }
        if (delta > 0)
        {
            Double theUnknown1, theUnknown2;
            theUnknown1 = (- coefficient_B + Math::Sqrt(delta)) / (2 * coefficient_A);
            theUnknown2 = (- coefficient_B - Math::Sqrt(delta)) / (2 * coefficient_A);
            Console::WriteLine(L"方程的根为: {0:F4}, {1:F4}", theUnknown1, theUnknown2);
        }
        if (delta < 0)
        {
            Console::WriteLine(L"方程没有实数根");
        }
    }
    return 0;
}
// 交互获取方程系数
Double GetCoefficient(String^ tips)
{
    Double returnValue;
    do
    {
        Console::Write(tips);
    } while (!Double::TryParse(Console::ReadLine(), returnValue));
    return returnValue;
}
[ 本帖最后由 TonyDeng 于 2014-12-12 23:51 编辑 ]

 
											





 
	    




 
											
