如何将输出旋转90度?

时间:2011-09-27 21:40:11

标签: c

我有一个代码,来自kladblok.txt的文件包含以下数字:

1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

我如何获得输出:

1111111111
2222222222

等。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

算法非常简单:

  • 打开文件
  • 分配一个大小足以包含数字的二维数组
  • 将数字读入数组
  • 关闭文件
  • 打印数组转置
  • 释放阵列

答案 1 :(得分:1)

如果您只想将其旋转90度打印,则只需更改循环的开始/结束/增量即可。假设您在原始轮播中有int data[10][10]

然后你想从左下角开始向上走。向右移动一个空格,再从底部开始,然后转到顶部等:

int i, j;

for (i = ?; i ? ?; i??)
{
    for (j = ?; j ? ?; j??)
    {
        /* print element [i][j] (or perhaps [j][i]) */
    }

    /* do a carriage return here */
}

/* What should the question marks be? */