【发布时间】:2020-03-01 02:34:05
【问题描述】:
下面的代码从控制台获取 3 个输入,然后解析数字,然后将其发送到 getRealRoots 方法。找出它是否有 2、1 或没有根。 getrealroots中的out参数显示如下错误:
out 参数 'r1' 必须在控制离开之前分配给 当前方法
必须在控制离开当前方法之前分配 out 参数 'r2'
using System;
namespace Quadratic
{
public class Program
{
static public void Main(string[] args)
{
Console.WriteLine("Enter three numbers, (A,B,C)");
Double? a = GetDouble();
Double? b = GetDouble();
Double? c = GetDouble();
getRealRoots(a, b, c,out r1,out r2);
//throw new NotImplementedException("implement main");
}
static public int getRealRoots(double A, double B, double C, out double? r1, out double? r2)
{
double discriminant = B * B - 4 * A * C;
if (discriminant > 0)
{
r1 = (-B + Math.Sqrt(discriminant)) / (2 * A);
r2 = (-B - Math.Sqrt(discriminant)) / (2 * A);
Console.WriteLine("The equation " + GetQuadraticString(A, B, C) + " has two real roots:" + r1 + " " + r2);
}
else if (discriminant == 0)
{
r1 = -B / (2 * A);
Console.WriteLine("The equation " + GetQuadraticString(A, B, C) + " has one real root:" + r1);
}
else
{
Console.WriteLine("The equation " + GetQuadraticString(A, B, C) + " has no real roots:");
}
}
//throw new NotImplementedException("write a method that uses out variables to return the real discriminants of a quadratic");
}
}
【问题讨论】: