Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中为数组中的元素设置范围#_C#_Arrays - Fatal编程技术网

C# 如何在C中为数组中的元素设置范围#

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

我对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 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;