刚学c#,下面是我写的杨辉三角的代码,不知道为什么编译的时候总提示“名称“i”在类或命名空间“Test”不存在”?哪位高手能解释一下呢?
using System;
class Test
{
  
 public static void Main()
 {
  
  int[,] a=new int[5,5];
  a[0,0]=1;
  for(int i=1;i<=5;i++)
  {
   a[i,0]=1;
   a[i,i]=1;
   for(int j=1;j<=i;j++)
   {
    a[i,j]=a[i-1,j-1]+a[i-1,j];
    
   }
   
  }
  for(i=0;i<5;i++)
  {
   for(j=0;j<i;j++)
   {
    Console.WriteLine("{0}",a[i,j]);
   }
    Console.WriteLine();
   }
 }
}

解决方案 »

  1.   

    using System; 
    class Test 

      
    public static void Main() 

      
      int[,] a=new int[5,5]; 
      a[0,0]=1; 
      for(int i=1;i <=5;i++) 
      { 
      a[i,0]=1; 
      a[i,i]=1; 
      for(int j=1;j <=i;j++) 
      { 
        a[i,j]=a[i-1,j-1]+a[i-1,j]; 
        
      } 
      
      } 
      for(i=0;i <5;i++)   //没定义
      { 
      for(j=0;j <i;j++) 
      { 
        Console.WriteLine("{0}",a[i,j]); 
      } 
        Console.WriteLine(); 
      } 

    }
      

  2.   

    using System; 
    class Test 

      
    public static void Main() 

      
      int[,] a=new int[5,5]; 
      a[0,0]=1; 
      for(int i=1;i <=5;i++) 
      { 
      a[i,0]=1; 
      a[i,i]=1; 
      for(int j=1;j <=i;j++) 
      { 
        a[i,j]=a[i-1,j-1]+a[i-1,j]; 
        
      } 
      
      } 
      for(i=0;i <5;i++)   // 没有定义  for(int i = 0; i<5;i++)
      { 
      for(j=0;j <i;j++)   // 没有定义  for(int j = 0; j<i;j++)
      { 
        Console.WriteLine("{0}",a[i,j]); 
      } 
        Console.WriteLine(); 
      } 

    }
      

  3.   

    呵呵。for(int i...)这个只在这个for程序体内有效的你是不是看着VC6这个版本里的代码改写过来的?在VC6里你这么写C++还真是可以认为i已经定义了。
      

  4.   

     for(int i=0;i <5;i++)  //没定义 
      { 
      for(int j=0;j <i;j++) 
      { 
        Console.WriteLine("{0}",a[i,j]); 
      } 
        Console.WriteLine(); 
      } 
      

  5.   


    for(int i=1;i <=5;i++) 
      { 
      a[i,0]=1; 
      a[i,i]=1; 
      for(int j=1;j <=i;j++) //这里i只在这个循环体内有效,出了这个循环体就无效了  { 
        a[i,j]=a[i-1,j-1]+a[i-1,j]; 
        
      } 
      
      } 
      for(i=0;i <5;i++)  //没定义 
      { 
      for(j=0;j <i;j++) 
      { 
        Console.WriteLine("{0}",a[i,j]); 
      } 
        Console.WriteLine(); 
      } 你这个代码如果在VC6里这么个写法是可以通过的,但是在VC2005里现在也不可以通过了。你如果怕麻烦就在程序顶层定义一个int i,然后直接使用就可以了
      

  6.   


    using System;
    class Test
    {    public static void Main()
        {        int[,] a = new int[5, 5];
            a[0, 0] = 1;
            for (int i = 1; i < 5; i++)
            {
                a[i, 0] = 1;
                a[i, i] = 1;
                for (int j = 1; j <= i; j++)
                {
                    a[i, j] = a[i - 1, j - 1] + a[i - 1, j];            }        }
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j <= i; j++)//这里j<=i
                {
                    Console.Write("{0}", a[i, j]);
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
      

  7.   


      public static void Main()
            {
                int[,]a=new int[5,5];
                a[0, 0] = 1;
                for (int i = 1; i <5; i++)
                {
                    a[i, 0] = 1;
                    
                   for (int j = 1; j <=i; j++)
                    {
                         
                        a[i, j] = a[i - 1, j - 1] + a[i - 1, j];
                         a[i, i] = 1;
                    }
                   
                }
              for (int i = 0; i <5; i++)
                {
                    for (int j = 0; j <= i; j++)
                    {
                        Console.Write(a[i,j]);
                    }
                    Console.WriteLine();
                }
                Console.Read();
            }