简单的Windows应用程序c#混淆

本文关键字:混淆 应用程序 Windows 简单 | 更新日期: 2023-09-27 18:16:59

我的程序糟透了,我需要帮助!我已经尝试过c++, c#对我来说是新的。这所大学的专家说c#很像c++,所以我试图拓宽我对c++以外的其他编程语言的看法。我试着编写一个程序,在windows应用程序上计算5个输入数字中最小的3个数字的和。

查看Windows应用程序的设计在这里:设计视图

和我混乱的代码:

namespace Array_excercise
{
   public partial class Form1 : Form
   {
    public Form1()
    {
        InitializeComponent();
    }
    int[] nums = { 0, 0, 0, 0, 0 };
    int[] lownum = { 0, 0, 0,0,0 };
    int[] highnum = { 0, 0, 0, 0, 0 };
    private void computbtn_Click(object sender, EventArgs e)
    {
        nums[0] = Int32.Parse(textBox1.Text);
        nums[1] = Int32.Parse(textBox2.Text);
        nums[2] = Int32.Parse(textBox3.Text);
        nums[3] = Int32.Parse(textBox4.Text);
        nums[4] = Int32.Parse(textBox5.Text);
        int result;
        for (int a = 0; a <= 4; a++)
        {
            if (nums[a] < nums[0])
                lownum[a] = nums[a];
            else if (nums[a] < nums[1])
                lownum[a] = nums[a];
            else if (nums[a] < nums[2])
                lownum[a] = nums[a];
            else if (nums[a] < nums[3])
                lownum[a] = nums[a];
            else if (nums[a] < nums[4])
                lownum[a] = nums[a];
            else
                highnum[a] = nums[a];
        }
    }
}

在那之后,我不知道如何计算总和。现在,我主要学习如何将数组与if和for循环函数一起使用。如果在这个程序中使用了这些函数,我将非常感激。

我提前感谢你!

简单的Windows应用程序c#混淆

使用LINQ

var lowSum = nums.OrderBy(n => n).Take(3).Sum();

一维数组可以用静态Sort()方法排序。

https://msdn.microsoft.com/en-us/library/system.array.sort (v = vs.110) . aspx

在你的例子中,它会像这样:

// populate the array
nums[0] = Int32.Parse(textBox1.Text);
nums[1] = Int32.Parse(textBox2.Text);
nums[2] = Int32.Parse(textBox3.Text);
nums[3] = Int32.Parse(textBox4.Text);
nums[4] = Int32.Parse(textBox5.Text);
// sort the array from lowest to highest
Array.Sort(nums);
// declare a variable to hold the sum
int sum = 0;
// iterate over the first (smallest) three
for(int i=0;i<3; i++)
{
   sum += nums[i];
}
Console.WriteLine("The sum of the three smallest is: " + sum);

尝试使用一些排序算法,例如冒泡排序来对数组进行排序:

int c = -1;
for (int i = array.Length; i > 1; i--)
{
    for (int j = 0; j < i - 1; j++)
    {
        c = j;   
        if (array[j] < array[j + 1])
        {
            int temp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = temp;
        }
    }   
}

排序数组后,可以得到前3个最小数字的和:

int sum = 0;
for(int i=0; i < 3; i++)
{
    sum += array[i];
}

将所有值输入"nums"后。您可以使用以下代码设置这两个数组的值。

List<int> tempnums = nums.ToList(); //Creates a List from "nums" array.
tempnums.Sort(); //Sorts the List from smallest number to highest
int[] lownums = tempnums.ToArray(); //Creates an array from "tempnums" List.
tempnums.Reverse();//Reverses the values of "tempnums" so that the numbers are highest to lowest.
int[] highnums = tempnums.ToArray();//Creates an array from "tempnums" List.

然后有两种方法得到结果。

int result = 0;
for(int i = 1; i <= 3; i++)
{
    result += nums[i];
}

int result = nums[0]+nums[1]+nums[2];