use*_*450 5 c# sorting numbers
我需要用户输入三个数字,然后我需要让程序写出最大到最小的数字.
例如:USER输入16,3和45输出将是:最大数字是:45,中间数字是:16,最小数字是:3;
目前我将数字存储在不同的变量中并使用if,否则如果语句获得最大和最小,但我不知道如何使用else获取中间数字.
if (number1 <= number2
&& number1 >= number3 & number1 <= number3
&& number1 >= number2)
{
middle = number1;
}
else if (number2 <= number1
&& number2 >= number3 & number2 <= number3
&& number2 >= number1)
{
middle = number2;
}
else if (number3 <= number1
&& number3 >= number2 & number3 <= number2
&& number3 >= number1)
{
middle = number3;
}
Run Code Online (Sandbox Code Playgroud)
它甚至可能吗?
我是否需要让用户将值输入到Array中,然后我需要对其进行排序然后写出排序后的数组?
编辑:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Practise
{
class Practise
{
static void Main(string[] args)
{
int[] newArray = new int[3];
for (int i = 0; i < newArray.Length; i++)
{
newArray[i] = Convert.ToInt32(Console.ReadLine());
}
Array.Sort(newArray);
int lowestNumber = newArray[0];
int middle = newArray[1];
int highest = newArray[2];
Console.WriteLine("How can i only type out variables?" + highest + How can i only type out variables?" + middle + "How can i only type out variables?" + lowestNumber);
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
数组排序工作,使用Selman22的解决方案!我需要在Console.WriteLine()中输入什么内容; 只写出没有添加值的变量.
> example: highest = 15 middle = 10 lowestNumber = 5
> Console.WriteLine(highest + middle + lowestNumber); would do 15 + 10
> + 5 = 30. If i put "text" in between they obviously does not add up but what do I type to only get values out?
Run Code Online (Sandbox Code Playgroud)
我真的很感谢所有的答案,这个网站真的很有帮助!
编辑:
Console.WriteLine(" " + highest + " " + middle + " " + lowestNumber);
Run Code Online (Sandbox Code Playgroud)
有没有其他方法写出变量的值而不是在两者之间加上""?如果我做
Console.Writeline(highest, middle ,lowestNumber);
Run Code Online (Sandbox Code Playgroud)
如果我说它说错误像无法将最高转换为字符串等.
尝试使用数组或列表来存储所有数字。下面是如何使用 Linq 对列表进行排序的示例。
var myNumbers = new List<int>();
myNumbers.Add(45);
myNumbers.Add(14);
myNumbers.Add(30);
//etc
var sortedList = myNumbers.OrderBy(x => x).ToList();
//sortedList now contains a list of numbers in order from large to small.
var middleNumber = sortedList[1]; //get the second entry.
Run Code Online (Sandbox Code Playgroud)