-12

次の C# コードがあります。

double eps=0.1, low=1, y0=0, x, y, high, muchlat, answer, ribua;
Console.WriteLine("Enter x");
x = double.Parse(Console.ReadLine());
high = y = x;
muchlat = Math.Abs(y - y0) ;
if (x < 0)
{
    Console.WriteLine("X can't be less than zero, press any key to exit");

}
else if (muchlat > eps)
{

    while  (muchlat > eps)
    {
        Console.WriteLine(y);
        y0 = y;
        y = (high + low) /2;
        ribua = Math.Pow(y,2);
        if (ribua == x)
        {
            answer = x;
        }
        else if (ribua > x)
        {
            high =y;
        }
        else if (ribua < x)
        {
            low =y;
        }
        else if (muchlat < eps)
        {
            answer = y;
            break;
        }
    }
}
Console.WriteLine(answer);
Console.ReadLine();

プログラムをデバッグしようとすると、「割り当てられていないローカル変数 'answer' の使用 (CS0165)」というメッセージが表示されました。どうすれば修正できますか?また、どこに問題があるのでしょうか?

4

2 に答える 2

5

回答が初期化されることはありません。

double eps=0.1, low=1, y0=0, x=0, y=0, high=0, muchlat=0, answer=0, ribua=0;
于 2012-11-29T20:07:11.710 に答える
3

answer の値を 0 に定義して宣言するだけです。それはそれを修正する必要があります。

于 2012-11-29T20:07:01.570 に答える