2015-09-02 87 views
0

我不知道如何計算平均值。我得到了我期待的輸出結果,除了我想在所有其他信息旁邊的列中輸入的平均值外。非常感謝任何能爲我看的人。將文本文件讀入二維數組

using System; 
using System.IO; 
public static class Program 
{ 

static void Main() 
{ 
    string file="marks2D.txt"; 
    string outfile="average.csv"; 

    StreamReader sr= new StreamReader(file); 
    StreamWriter outstream= new StreamWriter(outfile); 

    double[,] temp=new double[5,6]; 
    int num=0; 
    double ave=0; 


for(int i=0; i<temp.GetLength(0); i++) 
    { 
     double sum=0; 
     string line=sr.ReadLine(); 

     for(int j=0; j<temp.GetLength(1); j++) 
     { 


      double m=double.Parse(line); 
      temp[i,j]=m; 
      sum+=m; 
      ave = sum/5; 

      //temp[i,j]=line; 
      outstream.WriteLine(ave); 
      outstream.WriteLine("{0,1}", temp[i,j]); 
     } 


    } 
    outstream.WriteLine(); 
    Console.WriteLine(); 


    sr.Close(); 
    outstream.Close(); 


} 
} 

回答

1

您已聲明temp爲2維數組。

string[,] temp=new string[5,6]; 

您然後嘗試設置使用一個索引

temp[num]=line; 

這是不可能的2D陣列的值。對於二維數組,則必須使用2個索引

temp[i, j]=line; 

你得到錯誤「的名稱字段不會在當前的背景下存在」,因爲你已經註釋掉字段變量,所以它不存在。

+0

在我的outstream文件中,如何在數字之間聲明逗號或空格?非常感謝。 – maddddie123

0

您已經聲明瞭一個二維字符串數組,但是您將其引用爲循環內的一維數組。

更改線路

temp[num]=line; 

這樣:

temp[i,j]=line; 

而且,你忘了發表意見的第二outstream.WriteLine,我相信作爲變量場被註釋掉。

//outstream.WriteLine(field[num]);