1203081549 发表于 2023-1-6 15:49:35

二维数组

int a={1,2,3,4,5,6},b={0},i,j,k=0;
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
   b=a;
printf("%d",b);
k++;
if(k%2==0)
printf("\n");
                           }
                     }
这种方法为什么实现不了二维数组行列互换

KeyError 发表于 2023-1-6 15:54:21

int a={1,2,3,4,5,6},b={0,0,0,0,0,0}, i,j,k=0;
for(i=0;i<=1;i++){
    for(j=0;j<=2;j++){
      b=a;
      printf("%d",b);
      k++;
      if(k%2==0){
            printf("\n");
      }
    }
}

wp231957 发表于 2023-1-6 16:01:08

#include <stdio.h>

int main()
{
      int a={1,2,3,4,5,6},b={0},i,j,k=0;
      for(i=0;i<=1;i++)
      {
                for(j=0;j<=2;j++)
                {
                        b=a;
                }
      }
      for(k=0;k<3;k++)
      {
                for(j=0;j<2;j++)
                {
                        printf("%d",b);
                }
                printf("\n");
      }
      return 0;
}

ExiaGN001 发表于 2023-1-6 16:13:04

本帖最后由 ExiaGN001 于 2023-1-6 16:16 编辑

因为你看似是反转了行列,实际在这里
b=a;
printf("%d",b);
k++;

输出的仍是a,自然没有实现行列互换。

改进代码:


int a={1,2,3,4,5,6},b={0},i,j,k=0;
for(i=0;i<2;i++)
{
        for(j=0;j<3;j++)
        {
               b=a;
        }
}
for(i=0;i<3;i++)
{
        for(j=0;j<2;j++)
        {
                cout<<b<<" ";
        }
        cout<<"\n";
}
页: [1]
查看完整版本: 二维数组