C# 如何从列表中打印几个最低的数字?
我编写了以下代码:C# 如何从列表中打印几个最低的数字?,c#,numbers,C#,Numbers,我编写了以下代码: static void Main(string[] args) { int num1 = 0; for (int i = -1; i < 10; i++) { Console.Write(" "); if (num1 < -1) { Console.WriteLine("You entered a number less than -1, please enter
static void Main(string[] args)
{
int num1 = 0;
for (int i = -1; i < 10; i++)
{
Console.Write(" ");
if (num1 < -1)
{
Console.WriteLine("You entered a number less than -1, please enter higher number");
Console.Write(" ");
}
num1 = int.Parse(Console.ReadLine());
}
Console.Read();
}
static void Main(字符串[]args)
{
int num1=0;
对于(int i=-1;i<10;i++)
{
控制台。写(“”);
如果(num1<-1)
{
WriteLine(“您输入的数字小于-1,请输入更高的数字”);
控制台。写(“”);
}
num1=int.Parse(Console.ReadLine());
}
Console.Read();
}
用户可以输入他想要的任何数字,只要该数字高于-1
(数字-1也可以由用户写入)
然后我需要打印最低的4个数字(不包括-1),例如:
用户输入:200、10、50、-1、5、6、2、8、3
它将打印:2,3,5,6
感谢你们的帮助:)
谢谢仅当数字大于-1时,才将它们存储在列表中,然后在末尾执行以下操作: 名单是{200、10、50、5、6、2、8、3}
Console.WriteLine(string.Join(" ", list.OrderBy(x => x).Take(4).Select(x => x.ToString()).ToArray<string>()));
Console.WriteLine(string.Join(“,list.OrderBy(x=>x).Take(4).选择(x=>x.ToString()).ToArray());
我希望这有助于使用
Where
过滤出-1,用OrderBy
订购其余的,然后获取所需的
Console.WriteLine(string.Join(" ", list.Where(n => n >= 0).OrderBy(n => n).Take(4)));
注意这是使用System.Linq的在名称空间中进行编码>。使用a对列表进行排序,然后获得最低的数字:
static void Main(string[] args)
{
int num1 = 0;
List<int> numbers = new List<int>();
for (int i = -1; i < 10; i++)
{
Console.Write(" ");
if (num1 < -1)
{
Console.WriteLine("You entered a number less than -1, please enter higher number");
Console.Write(" ");
i--;
}
else
{
num1 = int.Parse(Console.ReadLine());
numbers.Add(num1);
}
}
//sorting
numbers.Sort();
int amountCounted = 0;
for (int i = 0; i < numbers.Count && amountCounted < 5; i++)
{
if (numbers[i] > -1)
{
Console.WriteLine(numbers[i]);
amountCounted++;
}
else
i++;
}
Console.Read();
}
这会给你你想要的。输入2001050-156283
将打印:2,3,5,6
void Main()
{
Console.WriteLine("Please enter some numbers seperated by a space");
Console.WriteLine("");
var userInput = Console.ReadLine();
var numbers = userInput.Split(' ');
var lowestNumbers = numbers.Where(n => int.Parse(n) > -1).OrderBy(n => int.Parse(n)).Take(4).ToList();
var output = string.Join(", ", lowestNumbers);
Console.WriteLine(output);
}
如果用户输入:200、10、50、-1、5、6、2、8、3
。。。它不应该打印-1,2,3,5
?@TunZarniKyaw他想输出最低的4个>=0的数字。@ScottChamberlain。。。是的,我只是想知道输入-1
的目的是什么,谢谢大家的回答,这是我在学校需要的东西(我刚刚开始我的编程世界)问题是我不能在我的代码中使用我们还没有学过的东西,所以我不能使用“list”或“count”,“var”来自您的解决方案。我需要达到我的解决方案与“for”循环,用户应该输入10个数字,不知何故,我应该能够打印用户输入的最低数字(没有-1),我有点迷失。。。我在forst注释中编写的代码允许用户输入我想要的数字,现在我坚持使用show the 4 lower number。我很感激你的评论:)请做你自己的家庭作业。谢谢你的回答,这是我上学需要的东西(我刚刚开始我的编程世界)问题是我不能在我的代码中使用我们还没有学过的东西,所以我不能使用你的“列表”或“计数”、“var”。我需要达到我的解决方案与“for”循环,用户应该输入10个数字,不知何故,我应该能够打印用户输入的最低数字(没有-1),我有点迷失。。。我在forst注释中编写的代码允许用户输入我想要的数字,现在我坚持使用show the 4 lower number。感谢您的评论:)@user3396397检查我的编辑。请注意,这应该在中,您可以推断如何对四个数字使用此方法。您只需增加变量的数量并将变量值移动到某个位置,谢谢!你的编辑很好,但那只会打印1个数字(最低的一个),而不是4个最低的数字。我成功地做到了这一点,但我也无法显示其他3个数字:)@user3396397你只需要再添加3个变量。这不是一个漂亮的代码,但它应该给你一个教训。我为第二个变量添加了代码,让您开始学习。如果值小于,则只需将值从一个变量移到另一个变量。另外,如果{…}
而不是如果
低于第一个,则确保使用else,因为它肯定会低于第二个否则,如果
确保不会发生这种情况。@user3396397没问题!您可以通过单击绿色标记接受我的答案来解决问题
void Main()
{
Console.WriteLine("Please enter some numbers seperated by a space");
Console.WriteLine("");
var userInput = Console.ReadLine();
var numbers = userInput.Split(' ');
var lowestNumbers = numbers.Where(n => int.Parse(n) > -1).OrderBy(n => int.Parse(n)).Take(4).ToList();
var output = string.Join(", ", lowestNumbers);
Console.WriteLine(output);
}