简单的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循环函数一起使用。如果在这个程序中使用了这些函数,我将非常感激。
我提前感谢你!
使用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];