代表矩阵中的数字螺旋

时间:2018-04-06 02:33:17

标签: c++ arrays matrix

如何在具有相同行数和列数的二维数组中动态填充以下输出。

enter image description here

编辑:以下是使用c#中的@TheGeneral代码的c ++解决方案。

#include <iostream>

using namespace std;

int main(){
    int size = 10;
    int half = size/2;
    int matrix[size][size];
    int number1 = 0;
    int number2 = 0;

    for(int i = 1; i<=size; i++){
        for(int j = 1; j<= size; j++){
            if(i > half){
                number1 = size + 1 - i;
            }else{
                number1 = i;
            }
            if(j > half){
                number2 = size + 1 - j;
            }else{
                number2 = j;
            }
            if(number1 < number2){
                matrix[i-1][j-1] = number1;
            }else{
                matrix[i-1][j-1] = number2;
            }
        }
    }

    cout<<"MATRIX:"<<endl;
    for(int i=0; i<size; i++){
        for(int j=0; j<size; j++){
            cout<<"["<<matrix[i][j]<<"] \t";
        }
        cout<<endl;
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

有点乐趣

唯一值得注意的事情是

<强>〔实施例

private static int[, ] CreateArray()
{
    var ary = new int[10, 10];
    for (var i = 1; i <= 10; i++)
        for (var j = 1; j <= 10; j++)
            ary[i - 1, j - 1] = Math.Min(i > 5 ? 11 - i : i, j > 5 ? 11 - j : j);
    return ary;
}

Demo here