我有一个骰子游戏,我需要找到最高的5个骰子并得到它的总和。 到目前为止,我已经制作了这个代码,将数字计算成对。现在我想找到最高的一对。
代码:
int Pair[];
Pair = new int[7] {0, 0, 0, 0, 0, 0, 0} //Seven pairs because i dont want to use Pair[0]
int TT[];
TT = new int[5] { 1, 6, 3, 1, 3 }; //five dice
int t = 1;
for(int i = 0; i < 5; i++)
{
if ( TT[i] == t)
{
Pair[t] = Pair[t] + 1;
t = t + 1;
}
}
答案 0 :(得分:2)
如果我理解你的问题,我认为你过于复杂了。如果你考虑一下,你想要的是arry中两个最高的数字。只需对其进行排序,然后将其反转,并取两个第一个数字。
class Program
{
static void Main(string[] args)
{
int[] Dice = new int[5] { 1, 6, 3, 1, 3 };
Array.Sort(Dice);
Array.Reverse(Dice);
Console.WriteLine("The largest pair is ({0}, {1})", Dice[0], Dice[1]);
}
}
bigts对的另一种可能性(如评论中所述)是你想要在列表中找到两次出现的最高数字。您可以通过对数组进行排序,将其反转来执行此操作,以便从最高数字中读取数据。然后逐步检查当前号码是否与下一个号码匹配,如果是这种情况,则找到最高号码。
class Program
{
static void Main(string[] args)
{
int[] Dice = new int[5] { 1, 6, 3, 1, 3 };
Array.Sort(Dice);
Array.Reverse(Dice);
for (int i = 1; i < Dice.Length; i++)
{
if (Dice[i] == Dice[i - 1])
{
Console.WriteLine("The largest pair is ({0}, {1})", Dice[i], Dice[i-1]);
break;
}
}
}
}