请将下面代码中的三个两层for循环,简化为一个两层for循环。
要求原代码的功能现实不变! public  void PrintT(double[,] e, int[,] root, double[,] w)
        {
            int RootX = 700;
            int WX = 360;
            int EY = 60;
            int x = 20;
            int y = EY;
            int AddDis = 40;            for (int i = 1; i <= 7; i++)
            {
                for (int j = 0; j <= 6; j++)
                {
                    if (e[i, j] != 0)
                    { AddToForm(e[i, j].ToString("0.00"),x,y); }
                    else
                    { }
                    x += AddDis;
                    if (j == 6)
                    {
                        y += AddDis;
                        x = 20;
                    }
                }
            }  
            
            x = RootX;
            y = EY;
            for (int i = 1; i <= 7; i++)
            {
                for (int j = 0; j <= 6; j++)
                {
                    if (root[i, j] != 0)
                    { AddToForm(root[i, j].ToString(),x,y); }
                    else
                    { }
                    x += AddDis;
                    if (j == 6)
                    {
                        y += AddDis;
                        x = RootX;
                    }
                }               
            }
           
            x = WX;
            y = EY;
            for (int i = 1; i <= 7; i++)
            {
                for (int j = 0; j <= 6; j++)
                {
                    if (w[i, j] != 0)
                    { AddToForm(w[i, j].ToString("0.00"),x,y); }
                    else
                    { }
                    x += AddDis;
                    if (j == 6)
                    {
                        y += AddDis;
                        x = WX;
                    }
                }
            }
        }       

解决方案 »

  1.   

    谢谢关注!请注意题目:请将下面代码中的三个两层for循环,简化为一个两层for循环
      

  2.   

    public  void PrintT(double[,] e, int[,] root, double[,] w) 
            { 
    string returnValue="";
                int RootX = 700; 
                int WX = 360; 
                int EY = 60; 
                int x = 20; 
                int y = EY; 
                int AddDis = 40; 
    for(int k=0;k<3;k++)
    {
    if(k==1)
    {
    x = 20; 
    y = EY; 
    returnValue =aaaa(x,y);
    }else if(l==2)
    {
    x = RootX; 
                y = EY;  
    returnValue =aaaa(x,y);}else if(k==3)
    {
    x = WX; 
                y = EY;  
    returnValue =aaaa(x,y);
    }
    }}
    }
    public string aaaa(int x,int y)
    {
    for (int i = 1; i <= 7; i++) 
                { 
                    for (int j = 0; j <= 6; j++) 
                    { 
                        if (e[i, j] != 0) 
                        { AddToForm(e[i, j].ToString("0.00"),x,y); } 
                        else 
                        { } 
                        x += AddDis; 
                        if (j == 6) 
                        { 
                            y += AddDis; 
                            x = 20; 
                        } 
                    } 
                }  
    return x +"," + y;
    }把 string[] aaa = returnValue.Split(',');就是你要的X,Y!
      

  3.   

    哦哦哦 ,,,X 的赋值不一样!!!
    那 对传个参数进来!!!
    public string aaaa(int x,int y, int Val) 

    for (int i = 1; i <= 7; i++) 
                { 
                    for (int j = 0; j <= 6; j++) 
                    { 
                        if (e[i, j] != 0) 
                        { AddToForm(e[i, j].ToString("0.00"),x,y); } 
                        else 
                        { } 
                        x += AddDis; 
                        if (j == 6) 
                        { 
                            y += AddDis; 
                            x = Val; 
                        } 
                    } 
                }  
    return x +"," + y; 

      

  4.   

    谢谢关注!楼上的回答我也想到过,可问题是函数PrintT传入的数组参数都不同,double[,] e, int[,] root, double[,] w那又该如何将不同数据类型的数组参数用同一个形参来表示呢?请多指教!希望大家多多帮忙,将原题中的代码进行优化!
      

  5.   


    public void PrintT<T>(T[,] t)//这是定义方法PrintT<int>(int [,])//方法调用
      

  6.   

    其实我对于泛型参数也是朦胧,建议lz上百度或者Google搜一下
      

  7.   


    不知道你在说什么!!!是 参数类型不同,还是值?还是 赋值给X值 类型不同?
    看你用 double,int   .....double 也可保存INT,,,不喜欢用string ,用的时候转化成 INT,DOUBLEOR  7 楼