2016-09-07 39 views
0

現在、配列に値を入力しようとすると、rows = 30cols = 5にファイルが書き込まれています。どのように私はこれを修正するのですか?配列の値を列と行にファイルに書き込む

CODE:

static void PrintReport() 
{ 
    fileOut.WriteLine(); 
    fileOut.WriteLine("Score  Score  Score  Score  Score"); 
    fileOut.WriteLine("-----  -----  -----  -----  -----"); 
    fileOut.WriteLine(""); 

} 

static void InputValues() 
{ 
    int n = 0, row, col; 
    int numOfRows, numOfCols; 
    string[] words; 

    words = fileIn.ReadLine().Split(','); 
    numOfRows = Int32.Parse(words[0]); 
    numOfCols = Int32.Parse(words[1]); 
    numOfValues = numOfRows * numOfCols; 
    valueArray = new double[numOfValues + 1]; 
    for (row = 1; row <= numOfRows; row++) 
    { 
    words = fileIn.ReadLine().Split(','); 
    for (col = 1; col <= numOfCols; col++) 
    { 
     //n = numOfCols*(row-1) + col; 
     n++; 
     valueArray[n] = Double.Parse(words[col - 1]); 
    } 
    } 
} 

所望の出力:

desired output

+1

がhttp://www.domyhomework.com –

+1

からいくつかの助けを得る解決「のが現在まっすぐそれらを書いて、私のコードから。」 - あなたが現在 'PrintReport()'に持っているコードは、いくつかの文字列を出力する以外のことはしていません。私はそこに 'valueArray'を反復することを前提としています。 – Quantic

+0

私は、 'としてPrintReport()' '内部forループしていたため(i = 1; I <= numOfValues; I ++)は fileOut.WriteLine(valueArray [I]);'私は図に見えることはできません最初の列の最初の値を30行で書き込んだ後、次の列に書き込みを開始する方法。 –

答えて

0

あなたはフォーマットを探している場合は、以下のスニペットです。常に30x5がある場合に機能します。それ以外の場合は、ロジックを変更する必要があります。 $ ""構文はC#6.0からのみ動作します。下のバージョンではユーザーstring.Formatを使用する必要があります。 \ tはスペース用です.5を増やして調整することもできます。

void Print(double[] valueArray) 
    { 
     for(int row = 0; row <150; row+=5) 
     { 
      Console.WriteLine($"{valueArray[row],5:N2}\t{valueArray[row + 1],5:N2}\t{valueArray[row + 2],5:N2}\t{valueArray[row + 3],5:N2}\t{valueArray[row + 4],5:N2}\t"); 
     } 
    } 
+0

あなたは何をしたのですか、それは左から右の値を書いています。私は列を昇順に並べる必要があります。 –

0
static void PrintReport() 
{ 
    int count; 
    fileOut.WriteLine(); 
    fileOut.WriteLine("Score  Score  Score  Score  Score"); 
    fileOut.WriteLine("-----  -----  -----  -----  -----"); 
    for (int row = 1; row <= numOfRows; row++) 
    { 
    for (int col = 1; col <= numOfCols; col++) 
    { 
     count = row + numOfRows * (col - 1); 
     if (count <= numOfValues) 
     fileOut.Write("{0,5:N2}  ", valueArray[count]); 
    } 
    fileOut.WriteLine(); 

    } 
} 

これは私の問題

関連する問題