如何在C#中编写特定方程式?

时间:2018-09-26 04:10:34

标签: c#

我的问题是我需要写一个复杂的数学方程式,使我将x提升为| y |的幂,这两个数字都是用户输入的。我尝试使用下面的代码,但会产生“ CS7036”错误:

  

没有给出与所需的'Math.Pow(double,double)'形式参数'y'相对应的参数

class Program
{
    static void Main(string[] args)
    {
        double x,y,z,v;
        Console.Write("x=");
        double.TryParse(Console.ReadLine(), out x);
        Console.Write("y=");
        double.TryParse(Console.ReadLine(), out y);
        Console.Write("z=");
        double.TryParse(Console.ReadLine(), out z);
        v=(1+Math.Pow(Math.Sin(x+y)))/
            Math.Abs(x-2*y/(1+x*x*y*y))*Math.Pow(x,Math.Abs(y))+
            Math.Pow(Math.Cos(Math.Atan(1/z)),2);
        Console.Write("v="+v);
        Console.ReadKey();
    }
}

代码: https://code.sololearn.com/cp4fky31p5cD/?ref=app

2 个答案:

答案 0 :(得分:4)

尝试为您的战俘指定第二个参数:

Math.Pow(Math.Sin(x + y),

v = (1 + Math.Pow(Math.Sin(x + y))) / 
...

答案 1 :(得分:2)

更新

(OP发布代码后)

代码

        double x,y,z,v;
        Console.Write("x=");
        double.TryParse(Console.ReadLine(), out x);
        Console.Write("y=");
        double.TryParse(Console.ReadLine(), out y);
        Console.Write("z=");
        double.TryParse(Console.ReadLine(), out z);
        v=(1+Math.Pow(Math.Sin(x+y)))/
        Math.Abs(x-2*y/(1+x*x*y*y))*Math.Pow(x,Math.Abs(y))+
        Math.Pow(Math.Cos(Math.Atan(1/z)),2);
        Console.Write("v="+v);
        Console.ReadKey();

错误

enter image description here

错误CS7036没有给出与'Math.Pow(double,double)'所需的形式参数'y'相对应的参数

问题

您仅用一个参数Math.Sin(x + y)调用Math.Pow(),它需要两个参数。

解决方案

检查公式,并使用两个参数调用Math.Pow

Math.Pow(Math.Sin(x + y), something_here )

原始答案(在OP添加代码和错误描述之前)

我不确定C7036是什么,但是此代码段输出8

        var x = 2;
        var y = 3;
        var number = Math.Pow(x, Math.Abs(y));
        Console.Write(number);

在此示例中,x和y为int,数字为double类型。