C# 如何在C中为数组中的元素设置范围#
我对C#还是很陌生,我们应该使用循环而不是方法。我的问题是如何限制用户输入的值(1到25)。 “游戏”应该要求用户输入他的值,然后抛出一个随机数,并检查它是否在myArray中保存的数字中C# 如何在C中为数组中的元素设置范围#,c#,arrays,C#,Arrays,我对C#还是很陌生,我们应该使用循环而不是方法。我的问题是如何限制用户输入的值(1到25)。 “游戏”应该要求用户输入他的值,然后抛出一个随机数,并检查它是否在myArray中保存的数字中 { int[] myArray = new int[10]; Console.WriteLine("Write down your numbers"); for (int i = 0; i < 10; i++) { Console.WriteLine("Type in
{
int[] myArray = new int[10];
Console.WriteLine("Write down your numbers");
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Type in values for index nr {0}: ", i);
{
int[]myArray=新的int[10];
控制台。写线(“写下你的号码”);
对于(int i=0;i<10;i++)
{
WriteLine(“为索引nr{0}键入值:”,i);
//用户被要求输入10个值,我需要做的是限制和
“另存为元素”值的范围在1到25之间,因此循环将继续(i++),如果用户键入的数字超出该范围,则我的循环将后退一步,就像(i--)
myArray[i]=int.Parse(Console.ReadLine());
}
var rand=new Random();//抛出一个随机数
int rand1=Convert.ToInt32(rand.Next(0,25));//随机数范围在0到25之间
Console.WriteLine(“{0}”,rand1);
for(int i=0;i
用于(int i=0;i<10;i++)
{
WriteLine(“为索引nr{0}键入值:”,i);
如果(int.TryParse(Console.ReadLine(),out int result)&&result>=0&&result,则问题在于您试图维护一个索引i
,该索引指示您在数组中的当前位置。
解决方案之一是简单地将其删除,并将项目添加到集合中,直到您有10个项目
这里我使用了一个HashSet
,因为在中不能有重复项。
任何时候你尝试添加一个,它都会简单地删除它。但是如果你想允许重复,你可以使用一个简单的列表
别忘了使用:
using System.Collections.Generic;
using System.Linq;
注意:使用1定义范围≤ x<25
,使用W.Dijkstra约定有一个我甚至没有开始编码的缺失部分。我误解了一个循环,该循环本应在范围内保存值,或者在值超过该范围时后退一步。一个do/while
循环将工作:do{myArray[i]=int.Parse(Console.ReadLine();}而myArray[i]<1 | | myArray[i]>25;
当我没有10个元素时,请输入一个数字。如果数字在正确的范围内,请将其添加到列表中。(另外,请选择不允许重复值的数据结构,以便轻松避免检查重复项,例如:{1,1,1,…,1})谢谢你的拖放!你的解决方案看起来非常优雅和有效,但我还没有达到这个水平,所以我无论如何都不能使用它。但是谢谢你让我看到了新的可能性!
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Type in values for index nr {0}: ", i);
if (int.TryParse(Console.ReadLine(), out int result) && result >= 0 && result <= 25)
{
myArray[i] = result;
}
else
{
i--;
Console.WriteLine("Wrong number!");
}
}
int collectionSize = 10;
int lowerBound = 1, upperBound = 25;
var userSelectedNumbers = new HashSet<int>();
while (userSelectedNumbers.Count() < collectionSize)
{
Console.WriteLine($"Enter an int between {lowerBound} and {upperBound} : ");
var input = Console.ReadLine();
if (int.TryParse(input, out int value)
&& lowerBound <= value
&& value < upperBound
)
{
userSelectedNumbers.Add(value);
}
else {
Console.WriteLine("Not a valid input!");
}
}
Console.Clear();
Console.WriteLine(
$"userSelectedNumbers contains {userSelectedNumbers.Count()} elements : {"
+ string.Join(", ", userSelectedNumbers) + "}"
);
var random = new Random();
int computerPick = random.Next(0, 25);
Console.WriteLine("Computer picked : " + computerPick);
if (userSelectedNumbers.Contains(computerPick))
{
Console.WriteLine("You win!");
}
else {
Console.WriteLine("You loose!");
}
using System.Collections.Generic;
using System.Linq;