0

快速说明 - 我对 c# 很陌生,所以如果这很愚蠢,我很抱歉。

我很难在一本书中完成一个简单的 c# 任务。

我的任务 - 创建一个 Windows 应用程序,在单个字段中接受整数作为输入,一次一个。一个按钮应该会导致在输入字段的正下方显示该数字,但前提是它大于当前显示的数字(或者它是第一个处理的数字)。处理完零 (0) 后,停止接受更多输入并显示(在输入字段上方)所有输入数字的总和。

这是我到目前为止所拥有的 -

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Linq;


namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += new System.EventHandler(button1_Click);
            listofNumbers = new List<int>();
        }

        List<int> listofNumbers;

        private void button1_Click(object sender, EventArgs e)
        {
            //convert input to integer
            int orginalInput = int.Parse(textBox1.Text);

            //add numbers to list
            listofNumbers.Add(orginalInput);

            string txt = "";

            foreach (int originalNumber in listofNumbers)
            {
                //find numbers greater than previously entered number
                int higherNumber = listofNumbers.Find(item => item > originalNumber);

                if (listofNumbers.Count == 1 || originalNumber < higherNumber)
                {
                    txt += higherNumber + " ";
                    label1.Text = txt;
                }


            }

            textBox1.Clear();


        }
    }
} 

我还没有开始添加输入(处理完零 (0) 后,停止接受更多输入并显示(在输入字段上方)所有输入数字的总和。)

我仍在尝试找出任务的第一部分。

我遇到的问题--即使我输入了不同的数字,显示的第一个数字也是零。-- 如果我输入的数字低于之前输入的数字,它似乎会吐出随机数。

非常感谢任何帮助或指示!

4

1 回答 1

1
if(!listofNumbers.Contains(0)){ // check for already zero entered or not
    int input = int.Parse(textBox1.Text);
    listofNumbers.Add(input); 
    if(input==0){  // if zero entered calculate the sum and set it as label text
       int sum = listofNumbers.Sum();
       label1.Text = sum.ToString();
    }else // otherwise campare with last label value and entered number and set the label
    {
     int maxNo = int.Parse(label1.Text);
     if(input>maxNo)
     {
        label1.Text = input.ToString();
     }
    }
}
于 2013-10-07T02:34:29.720 回答