C#でかなり新しいです。ユーザーが入力した値から配列を生成するように指示するクラスの代入を行います。この部分は完了し、仕事は完璧です。配列内の繰り返し数を数えます。
これでアレイが完成しました。アレイに入力された個々の番号をConsole.WriteLineに表示できるようにする必要があります。その番号が何回出現したのか、これを達成する方法について少し迷っています。
C#でかなり新しいです。ユーザーが入力した値から配列を生成するように指示するクラスの代入を行います。この部分は完了し、仕事は完璧です。配列内の繰り返し数を数えます。
これでアレイが完成しました。アレイに入力された個々の番号をConsole.WriteLineに表示できるようにする必要があります。その番号が何回出現したのか、これを達成する方法について少し迷っています。
LINQの使用を許可していますか?その場合は、GroupBy
とCount()
を調べてください。基本的にここで働くことができる1つのライナーがありますが、それは宿題なので、あなた自身のために細かい作業をしましょう...あなたが問題に遭遇した場合、あなたが行ったときにもっと助けてください。
+1の末尾ではなく、パスの開始点を指すために+1 – Matt
LINQ Distinct()拡張メソッドを使用できます。
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx
出現した時点で、Distinct()の結果を使用できます各事象に対してCount()を使用する。 – viniciushana
foreach (int item in array)
{
Console.Write(item.ToString() + " ");
int frequency = 0;
for (int i = 0; i < array.Length; ++i)
{
if (array[i] == item) ++frequency;
}
Console.WriteLine(frequency.ToString());
}
汚いとブルートフォース方法。あなたの配列が "int"配列であると考えてください。それ以外の場合は、タイプを変更してください。
これは、各数値をカウント数だけ出力することに注意してください。つまり、{1、1、1}は "1 3; 1 3; 1 3"を返します。 –
良い点。私はそのような問題を避けるために辞書の解法を使うだろう。または、重複を避けるためにIndexOf()をチェックする配列の代わりにList
LINQを使用しないと、生成している番号を追跡できます。 Dictionary
のようなデータ構造は、これまでに何度見たことがあるかを数字にマッピングすることでうまくいく可能性があります。
例:
あなたは、そのキーが数字であり、値は、配列内のその特定の数のカウントされ、その後、辞書に番号が検出されるたびに値が増加中の辞書を作成することができます。
int[] arrayOfNumbers = new int[] { 1, 4, 2, 7, 2, 6, 4, 4, };
Dictionary<int, int> countOfItems = new Dictionary<int, int>();
foreach (int eachNumber in arrayOfNumbers)
{
if (countOfItems.ContainsKey(eachNumber))
countOfItems[eachNumber]++;
else
countOfItems[eachNumber] = 1;
}
このコードは、すべてのC#のバージョンで動作しますが、あなたがC#3以上を使用している場合は、他の人が示唆されているとして、LINQを使用することができます。 =)
あなたの宿題をやっている人以外の人は少ししか研究をせず、特定の問題があるときに戻ってきます。 – ChrisBint
あなたはどの.NETフレームワークを使用していますか?ジェネリックスおよび/またはLINQを使用するかどうかを判断するのに役立ちます。 – Kash
これはプログラミング問題ではなく問題解決の問題ですIM0 –