我的节目搞砸了,我需要帮助! 我已经尝试过c ++,而c#对我来说是新的。大学的专家说c#就像c ++一样,所以我试图拓宽我对其他编程语言的看法,而不是c ++。我试图制作一个程序来计算Windows应用程序中5个输入数字中最低3个数字的总和。
查看windows应用程序的设计在这里: Design View
我乱糟糟的代码:
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循环函数的数组。 如果在这个程序中使用这些功能,我将非常感激。
我提前谢谢你了!
答案 0 :(得分:3)
使用LINQ
var lowSum = nums.OrderBy(n => n).Take(3).Sum();
答案 1 :(得分:1)
可以使用静态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);
答案 2 :(得分:0)
尝试使用一些排序算法,例如冒泡排序来对数组进行排序:
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];
}
答案 3 :(得分:0)
将所有值放入&#34; nums&#34;。您可以使用以下代码设置两个数组的值。
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];