グレーディングモデルに取り組んでいますが、配列の塗りつぶしに固執しています。配列に0から2までの数値を入力する必要がありますが、次のようになります。-主対角線が1つだけ入力されるようにします。-たとえば、要素a(31)= 2の場合、a(13)は0であり、;のセットである必要があります。-たとえば、要素a(31)= 1の場合、a(13)は1でなければならず、;のセット。原理自体は理解しています。
if (array[i+1,j] = 2)
{
(array[i, j+1] = 1)
}
it's wrong i know
int[,] array = new int[5, 5];
Random rnd = new Random();
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
array[i, j] = rnd.Next(0, 3);
if (i == j)
{
array[i, j] = 1;
}
}
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
Console.Write("{0}\t", array[i, j]);
}
Console.WriteLine();
}
これがあなたのために機能するかどうかを確認してください(タスクが正しく理解されていることを願っています):
var arr = new int[4, 4];
var rnd = new Random();
var length = arr.GetLength(0);
for (var i = 0; i < length; i++)
{
for (var j = i; j < length; j++)
{
if (i == j)
{
arr[i, j] = 1;
}
else
{
var curr = rnd.Next(0, 2);
arr[i, j] = curr;
var reverse = curr switch
{
0 => 2,
1 => 1,
2 => 0,
_ => throw new Exception("Should not happen")
};
// or if C# 8.0 is not way to go:
//int reverse;
//switch (curr)
//{
// case 0: reverse = 2; break;
// case 1: reverse = 1; break;
// case 2: reverse = 0; break;
// default: throw new Exception("Should not happen");
//}
arr[j, i] = reverse;
}
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加