0

Label1に値を入力するために、片側にテンキーを備えたWindowsフォームアプリケーションがあります。ユーザーが Enter ボタンを押すと、アプリケーションは値をスタックに「プッシュ」し、スタックを Label2 に表示する必要があります。アプリケーションが値を配列に格納し、スタックを画面に表示する部分で立ち往生しています。

Enter ボタンをクリックすると、次のコードが表示されます。

    private void btnEnter_Click_1(object sender, EventArgs e)
    {

            ArrayStack Stack = new ArrayStack();
            Stack.Push(label1, label2);
            label1.Text = "0";
    }

ArrayStack クラスには次のコードがあります。

    public class ArrayStack
{
    int[] StackArray = new int[10];
    int Top = -1;


    public Label Push(Label Label1, Label Label2)
    {
            StackArray[Top + 1] = Convert.ToInt32(Label1.Text);
            Top = Top + 1;
            for (int counter = 0; counter == Top + 1; counter++ )
            {
                int num = 10 - counter;
                Label2.Text += "\r\n [" + num + "] " + StackArray[Top];
            }

            return Label2;           
    }

}

私がここで抱えている問題は、意図したように Label2 を埋めず、空のままにすることです。私は何を間違っていますか?

4

1 に答える 1

0
        for (int counter = 0; counter == Top + 1; counter++ )
        {
            int num = 10 - counter;
            Label2.Text += "\r\n [" + num + "] " + StackArray[Top];
        }

次のように変更します。

        for (int counter = 0; counter <= Top; counter++ )
        {
            int num = 10 - counter;
            Label2.Text += "\r\n [" + num + "] " + StackArray[Top];
        }

また、ボタンを押すたびに新しいスタックが作成されます。会員登録してみてください。

于 2013-08-07T08:25:55.320 に答える