Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言中划分两个复数_C#_Division_Complex Numbers - Fatal编程技术网

C# 如何在C语言中划分两个复数

C# 如何在C语言中划分两个复数,c#,division,complex-numbers,C#,Division,Complex Numbers,我正试图用C语言将两个复数除法,但无法使其工作!我很确定是我的公式错了,但我不明白它有什么问题 我尝试过几次修改公式,但都没有成功。这是因为我从未学过复数或任何类似的数学,因此我很迷茫。 我尝试了这个公式:但在将其转换为代码时遇到了困难 我非常感谢您的回复!多谢各位 public Komplex div(Komplex a, Komplex b) { Komplex resDiv = new Komplex(); resDiv.re =

我正试图用C语言将两个复数除法,但无法使其工作!我很确定是我的公式错了,但我不明白它有什么问题

我尝试过几次修改公式,但都没有成功。这是因为我从未学过复数或任何类似的数学,因此我很迷茫。 我尝试了这个公式:但在将其转换为代码时遇到了困难

我非常感谢您的回复!多谢各位

        public Komplex div(Komplex a, Komplex b)
    {
        Komplex resDiv = new Komplex();

        resDiv.re = a.re / b.re - a.im / a.im;
        resDiv.im = a.re / b.im + a.im / b.re;

        return resDiv;
    }
编辑:程序应该采用如下输入示例:3+2i/1-4i

根据变量和类型名称进行调整:

public static Komplex div(Komplex a, Komplex b)
{
    // Division : Smith's formula.
    double a = a.re;
    double b = a.im;
    double c = b.re;
    double d = b.im;

    Komplex resDiv = new Komplex();

    // Computing c * c + d * d will overflow even in cases where the actual result of the division does not overflow.
    if (Math.Abs(d) < Math.Abs(c))
    {
        double doc = d / c;
        resDiv.re = (a + b * doc) / (c + d * doc);
        resDiv.im = (b - a * doc) / (c + d * doc);
    }
    else
    {
        double cod = c / d;
        resDiv.re = (b + a * cod) / (d + c * cod);
        resDiv.im = (-a + b * cod) / (d + c * cod);
    }

    return resDiv;
}
根据变量和类型名称进行了调整:

public static Komplex div(Komplex a, Komplex b)
{
    // Division : Smith's formula.
    double a = a.re;
    double b = a.im;
    double c = b.re;
    double d = b.im;

    Komplex resDiv = new Komplex();

    // Computing c * c + d * d will overflow even in cases where the actual result of the division does not overflow.
    if (Math.Abs(d) < Math.Abs(c))
    {
        double doc = d / c;
        resDiv.re = (a + b * doc) / (c + d * doc);
        resDiv.im = (b - a * doc) / (c + d * doc);
    }
    else
    {
        double cod = c / d;
        resDiv.re = (b + a * cod) / (d + c * cod);
        resDiv.im = (-a + b * cod) / (d + c * cod);
    }

    return resDiv;
}

你从中得到的结果到底是什么?你预期的输入是什么,预期的输出是什么?为什么不使用C类型,或者你是有意重新发明轮子来练习?你的数学是错误的。必须首先学习数学,只有当数学起作用时,你才能继续编写代码。阅读:你从中得到的结果到底是什么?你预期的输入是什么,预期的输出是什么?为什么不使用C类型,或者你是有意重新发明轮子来练习?你的数学是错误的。必须首先学习数学,只有当数学起作用时,你才能继续编写代码。读这篇文章:谢谢你的快速回答。我不使用.NET的类型,因为我正在学习编程,希望尽可能少地做幕后工作。有了这段代码片段,我可以检查它并了解发生了什么!谢谢你的快速回答。我不使用.NET的类型,因为我正在学习编程,希望尽可能少地做幕后工作。有了这段代码片段,我可以检查它并了解发生了什么!