[英]Removing array elements per draw C#
每個人。 對於初學者來說,這是我作為大學新生的第一個 C# 代碼(在這里仍然是菜鳥),我提前用我的英語道歉。 所以基本上我已經嘗試解決這個問題 5 個小時了,我真的很擅長這個,這是我第一次在這里尋求幫助。
所以這段代碼的目標是:
1.輸入一個integer 1-2。 1是平局,2是退出
2.抽獎開始后,代碼將在該名稱數組中獲得一個隨機索引
3.然后應從該名稱數組中刪除隨機選擇的元素以獲得新的隨機元素。
4.重復該過程,直到打印時不再出現四個名稱中的一個。
using System;
class Program
{
static void Main(string[] args)
{
bool isTrue = true;
while (isTrue)
{
//user choices
Console.WriteLine("[1]Draw\n[2]Exit\n");
//the input
Console.Write("Enter action: ");
int choices = Convert.ToInt32(Console.ReadLine());
//array of names
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
//for random generating of names
Random rand = new Random();
int randNames = rand.Next(names.Length);
//Draw
if(choices == 1){
Console.WriteLine("Congrats "+names[randNames]);
names[randNames] = " ";
for(int i=0; i < names.Length; i++){
Console.WriteLine(names[i]);
}
}
else if(choices == 2){
isTrue = false;
}
}
}
}
}
所以我的主要問題是在這段代碼中給定的名稱數組
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
在這部分代碼中,我很難搞清楚
if(choices == 1){
Console.WriteLine("Congrats "+names[randNames]);
names[randNames] = " ";
for(int i=0; i < names.Length; i++){
Console.WriteLine(names[i]);
}
我在這里所做的是,每當我在此處繪制所選擇的數字時,都應將其變成" "
,或者在我繪制並繪制三次時讓它看起來是空的。 我也試圖搜索這個問題,但沒有運氣。
結果將如下所示:
[1]Draw
[2]Exit
Enter action: 1
Congrats Mr. Albert
Mr. Joshua
Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit
Enter action: 1
Congrats Mr. Joshua
Mr. Albert
Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit
Enter action:
您可以在結果中看到它們不存在,但在下一次抽獎中它們仍然存在。 希望有人能幫助我,提前感謝您的幫助。
在 while 循環之前聲明您的數組:
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
while (isTrue)
{
//do your stuff
}
現在,您編輯數組並在下一次迭代中聲明未編輯的新數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.