私はプロジェクトに取り組んでいますが、完全に立ち往生しています。基本的に、次のようにフォーマットされたファイルからテキストデータを読み取る必要があります。
コンマで区切られた 1 行あたり 4 つの数値 (行数の厳密なセットはありません。このプログラムは任意の数の行で動作できるはずです)
2, 32, 4, 7
4, 8, 3, 8
33, 11, 56, 65
基本的に必要なのは、このテキスト ドキュメント内の 0 要素と 3 番目 (最後) の要素だけであり、それらを int に変換して独自の配列に配置する必要があります。
したがって、0 要素の場合は配列になります (上記のテキストの例を使用する場合):
zeroArray[] = 2, 4, 33
thirdArray[] = 7, 8, 65
だから、私が言うzeroArray[1]
なら4
thirdArray[0]
7
int
後で各要素を計算できるように、このデータを独自の配列に変換する必要があります。これらの計算を実行するメソッド (これから書く) を呼び出せるようにする必要があります。
これが私が抱えている問題です。
intArray
while ループ内で宣言されており、それがそのスコープであるため、while ループから抜け出すことはできません。しかし、while ループの out を宣言しようとすると、intArray
「割り当てられていないローカル変数の使用」というエラーが表示されますintArray
。while ループ内で宣言し、while ループのintArray
外で使用しようとすると、エラーが発生しますthe name intArray does not exist in the current context
。したがって、私の主な問題はintArray
、メソッドが計算を実行するためのパラメーターとして使用できるように、アクセスできる必要があることです。私の 2 番目の問題は、
intArray
基本的に 4 行すべてのデータを保持することです。を印刷intArray[0]
すると、リストされている最初の数字がすべて印刷されます (上記のテキスト例を使用)。2 4 33
intArray[3] を出力すると、次のようにテキスト データ内の 4 番目の整数がすべて出力されます。
7
8
65
私がする必要があるのは、テキストの最初の要素を保持するための配列と、テキストの 4 番目の要素を保持するための 2 つの配列をさらに 2 つ作成することです。これらは異なる方法で処理する必要があるためです。
このデータを格納する配列を作成しようとしましたが、何を試してもうまくいきません。の代わりにzeroArray[0] = 2
、印刷するとリスト全体が表示されます。
2
4
33
次にzeroArray[1]
、期待して4
印刷すると、リスト全体が再び印刷されます
2
4
33
残念ながら、ループと 1D 配列しか使用できません。リスト、OOP、または 2D 配列を使用できません。したがって、リスト/2D 配列を使用できる場合、コーディングは効率的ではありません。
intArray
異なる値を 2 つの異なる配列に格納できる for ループを作成する方法がわからなかったため、現在、値を int 配列に格納しています。私は本当にそうする方法を考えることはできません。私が試みた方法はどれも失敗しました。
List の代わりに 2 つの配列を使用できますか? intArray
変換された整数値を保持します (4 つの異なるセクションがあり、計算には 2 つしか必要ありません)。intArray[0]
値を保持する 2 つの配列を作成しintArray[3]
て、それらを使用して計算を続行できるようにする方法はありますか? また、これらの 2 つの配列をループ外で使用できるようにするにはどうすればよいですか? ループの外側で配列を作成すると、ループ内で使用できなくなり、ループの内側で配列を作成すると、ループの外側で使用できなくなります。
どんな助けでも大歓迎です
添付のコードは現在動作しているものです。2 つの配列を適切に格納する方法がわからないため、コードにはまだ含まれていません。
static void Main(string[] args)
{
//declarations
string inputString = "";
string[] results;
int holder = 0;
//import file for reading
FileStream inFile = new FileStream("input.txt", FileMode.Open, FileAccess.Read);
StreamReader myStream = new StreamReader(inFile);
//reads first line
inputString = myStream.ReadLine();
while (inputString != null)
{
//split the line
results = inputString.Split(',');
int[] intArray = new int[results.Length];
//do whatever processing you need to do to store it
for (int index = 0; index < results.Length; index++)
{
if (int.TryParse(results[index], out holder))
{
intArray[index] = holder;
}//end if
}//end for
//reads next line
inputString = myStream.ReadLine();
}//end while
//This is a test to see if the ints are correctly stored
Console.WriteLine(intArray[0]); //<--error here stating that 'The name intArray' does not exist in the current context'
}//end main