2015-09-02 76 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]);