输出一个按下列规律排列的M*N矩阵。
1 6 7  
2 5 8  
3 4 9这个怎么实现啊(C#)

解决方案 »

  1.   

    123
    456
    789
    =>
    roate -90度
    再做水平翻转
    中间一列上下颠倒一下?这玩意不懂,瞎JB扯的:-)
      

  2.   

    ?????计算机问题标准问题描述: 输入-处理要求-输出兄弟,你只给个输出,我们没想法?要不你直接print??
      

  3.   

    i 行 j 列i i*j i*j+i  ?
      

  4.   

    按列序处理矩阵:
    1 M+1 ... (N-1)M+1
    2 M+2 ... (N-1)M+2
    3 M+3 ... (N-1)M+3
    .  .          .
    .  .          .
    .  .          .
    M 2M  ...    NMfor(j=0;j<N;j++)
       for(i=0;i<M;i++)
          A(i,j)=j*M+i+1;

    P=1;
    for(j=0;j<N;j++)
       for(i=0;i<M;i++)
       {
          A(i,j)=P;
          P++;
       }就这么简单。
      

  5.   

    i 行 j 列 for(int i=0;i<n++)
    {
    for(int j=0;j<n;j++)
    {
    if(j%2==0)
      print("{0}",i+(j*n))
    else
      print("{0}",(j*n)-i+1)}
    }
      

  6.   

    for(int i=0;i <n++) 

    for(int j=0;j <n;j++) 

    if(j%2==0) 
      print("{0}  ",i+(j*n)) 
    else 
      print("{0}",(j*n)-i+1) } 
    print("\r\n")
    }
      

  7.   

    刚刚写快了,现纠正上面的错误按列序处理矩阵:
    1  2M    2M+1  ... (N-1)M+1
    2 M+M-1  2M+2  ... (N-1)M+2
    3 M+M-2  2M+3  ... (N-1)M+3
    .   .     .            .
    .   .     .            .
    .   .     .            .
    M  M+1   3M    ...    NM根据上面矩阵的规律,分奇偶列进行处理:for(j=0;j<N;j++)
      if(j%2=0)
        for(i=0;i<M;i++)  //原结果对奇数列(j为偶数的列)仍正确
            A(i,j)=j*M+i+1;
      else                 //偶数列(j为奇数的列)
        for(i=0;i <M;i++)
            A(i,j)=(j+1)*M-i;当然也可以写成
    for(j=1;j<=N;j++)
      if(j%2=1)
        for(i=1;i<=M;i++)  //奇数列(j为奇数的列)
            A(i-1,j-1)=(j-1)*M+i;
      else                 //偶数列(j为偶数的列)
        for(i=1;i<=M;i++)  
            A(i-1,j-1)=j*M-i+1;

    P=1;
    for(j=0;j<N;j++)
      if(j%2=0)
         for(i=0;i<M;i++)
         {
            A(i,j)=P;
            P++;
         }
      else
         for(i=M-1;i>=0;i--)
         {
            A(i,j)=P;
            P++;
         }这样就正确了。
    注:我没验证,你自行调试运行,有问题再说。