gpt4 book ai didi

C#随机数不生成0

转载 作者:行者123 更新时间:2023-11-30 20:20:32 25 4
gpt4 key购买 nike

我正在使用 C# 控制台应用程序开发足球联赛赛程项目。我正在尝试从包含在主场和客场比赛的球队的阵列中选择随机球队。当我尝试生成 9 个随机数时,只生成了 8 个数字而没有生成 0 个,因此代码无法中断 for 循环。我想问题是 if 语句不允许生成相同的数字,并且 int 数组的元素的默认值为 0。

这是代码和输出:

C# Code Output

    int randomHome; //Random number genetator for choosing a random iteration value from home array which containss the teams which plays at their home
int randomAway; //Random number genetator for choosing a random iteration value from awayarray which containss the teams which plays at away

Random randomNum = new Random();

int[] randomHomeNumArray = new int[home.Length]; //array will hold the randomHome values and home array is the array which is holding the team's iteration values which plays at their home
int[] randomAwayNumArray = new int[away.Length]; //array will hold the randomAway values and away array is the array which is holding the team's iteration values which plays at away
for (int homeArrayCounter = 0; homeArrayCounter < randomHomeNumArray.Length; homeArrayCounter++)
{
randomHome = randomNum.Next(home.Length)

if (!randomHomeNumArray.Contains(randomHome) )
{
randomHomeNumArray[homeArrayCounter] = randomHome; //It will hold the randomHome values
Console.WriteLine(homeArrayCounter + ". iterasyon in Home " + randomHomeNumArray[homeArrayCounter]);
}
else
{
homeArrayCounter--;
}
}
Console.WriteLine("\n\n");


for (int awayArrayCounter = 0; awayArrayCounter < randomAwayNumArray.Length; awayArrayCounter++)
{
randomAway = randomNum.Next(randomAwayNumArray.Length);

if (!randomAwayNumArray.Contains(randomAway))
{
randomAwayNumArray[awayArrayCounter] = randomAway; //It holds the random valures from away array which contains the teams which plays at away
Console.WriteLine(awayArrayCounter + ". iterasyon in Away " + randomAwayNumArray[awayArrayCounter]);
}

else
{
awayArrayCounter--;
}
}

最佳答案

当你初始化一个数组时,默认情况下它的每个索引的值为 0。当您使用随机数时,它总是会跳过 0,因为它已经存在。

你可以这样尝试:-

for(int i= 0; i<randomHomeNumArray.Length; i++){
randomHomeNumArray[i] = -1;
}

for (int homeArrayCounter = 0; homeArrayCounter < randomHomeNumArray.Length; homeArrayCounter++)
{
do{
randomHome = randomNum.Next(home.Length);
} while(!randomHomeNumArray.Contains(randomHome));
randomHomeNumArray[homeArrayCounter] = randomHome; //It will hold the randomHome values
Console.WriteLine(homeArrayCounter + ". iterasyon in Home " + randomHomeNumArray[homeArrayCounter]);
}

关于C#随机数不生成0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com