C#方法调用
我从C#开始,一般都是编码 我曾尝试编写一个基于控制台的三项式计算器,但在main方法(C#方法调用,c#,class,methods,C#,Class,Methods,我从C#开始,一般都是编码 我曾尝试编写一个基于控制台的三项式计算器,但在main方法(Calculate和DisplayResult)中最后两个方法的参数方面遇到了问题。 Visual studio一直在说: 没有给出与所需的形式化参数相对应的参数 参数 有人能帮我吗 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks
Calculate
和DisplayResult
)中最后两个方法的参数方面遇到了问题。
Visual studio一直在说:
没有给出与所需的形式化参数相对应的参数
参数
有人能帮我吗
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TrinomialCalculator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Trinomial Calculator");
Console.WriteLine("====================");
Console.ReadLine();
Console.Clear();
GetValues();
Calculate();
DisplayResult();
}
static int[] GetValues()
{
int[] values = new int[3];
string numInput;
Console.WriteLine("ax^2+bx+c");
Console.WriteLine("=========");
Console.ReadLine();
while (true)
{
Console.WriteLine("Enter an integer for 'a': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[0]);
Console.WriteLine("Enter an integer for 'b': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[1]);
Console.WriteLine("Enter an integer for 'c': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[2]);
if (values[0] == 0 || values[1] == 0 || values[2] == 0)
{
Console.WriteLine("One or more inputs are invalid. Try again.");
Console.ReadLine();
Console.Clear();
continue;
}
else
{
break;
}
}
Console.WriteLine("{0}x^2+{1}x+{2}", values[0], values[1], values[2]);
Console.ReadLine();
Calculate(values);
return values;
}
public static double[] Calculate(int[] values)
{
double[] result = new double[2];
result[0] = -values[1] + Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
result[1] = -values[1] - Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
DisplayResult(result);
return result;
}
static void DisplayResult(double[] result)
{
Console.WriteLine("X(1)={0}\n X(2)={1}", result[0], result[1]);
Console.ReadKey();
}
}
}
方法
Calculate
和DisplayResult
有1个参数,但它们用0个参数调用
按如下方式更改代码:
static void Main(string[] args)
{
Console.WriteLine("Trinomial Calculator");
Console.WriteLine("====================");
Console.ReadLine();
Console.Clear();
double[] x = Calculate(GetValues());
DisplayResult(x);
}
您没有将参数传递给方法。代码中还有一些东西是不需要的,比如while(true)循环和else子句没有任何作用 我重写了一点。和你的比较,看看你的想法 祝你学习编程好运。这是一个伟大的职业
using System;
namespace TrinomialCalculator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Trinomial Calculator");
Console.WriteLine("====================");
GetValues();
Console.ReadLine();
}
static void GetValues()
{
Console.WriteLine("ax^2+bx+c");
Console.WriteLine("=========");
string numInput;
int[] values = new int[3];
Console.WriteLine("Enter an integer for 'a': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[0]);
Console.WriteLine("Enter an integer for 'b': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[1]);
Console.WriteLine("Enter an integer for 'c': ");
numInput = Console.ReadLine();
int.TryParse(numInput, out values[2]);
if (values[0] == 0 || values[1] == 0 || values[2] == 0)
{
Console.WriteLine("One or more inputs are invalid. Try again.");
return;
}
Console.WriteLine("{0}x^2+{1}x+{2}", values[0], values[1], values[2]);
DisplayResult(values);
}
static double[] DisplayResult(int[] values)
{
double[] result = new double[2];
result[0] = -values[1] + Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
result[1] = -values[1] - Math.Sqrt(values[1] ^ 2 - 4 * values[0] * values[2]);
Console.WriteLine("X(1)={0}\n X(2)={1}", result[0], result[1]);
return result;
}
}
}
是的,两个人都很有帮助。谢谢你。然而,现在我正在努力理解为什么我的计算方法中的方程总是给我“NaN”…我怀疑这与C#无法用同样的方法处理int和double有关。