如何对角线穿过2D阵列?

时间:2018-11-25 15:42:14

标签: c arrays

我一直在尝试解决C语言中的问题。 我可以使用此代码对角遍历2D数组:

    for(int k = 0; k<10*2; k++) {
    for(int j = 0; j<=k; j++) {
        int i = k-j;
        if (i <10 && j<10) {
            printf("%d ", tomb[i][j]);
        }
    }
    printf("\n");
}

所以如果我的2D数组(坟墓)是:

0  1  2  3  4

5  6  7  8  9

10 11 12 13 14

15 16 17 18 19

20 21 22 23 24

然后输出对角线(/形状):

0

5 1

10 6  2

15 11 7  3

20 16 12 8 4

21 17 13 9

22 18 14

23 19

24

我的问题是,如何以反对角线(\形状)穿过该数组,这样我的输出看起来像这样:

4

3 9

2 8 14

1 7 13 19

0 6 12 18 24

5 11 17 23

10 16 22

15 21

20

2 个答案:

答案 0 :(得分:1)

考虑尺寸=尺寸x尺寸的方阵,这里是代码

df = pd.DataFrame({
    'Timestamp': ['2016-04-18 09:31:30',
          '2016-04-18 09:31:30',
          '2016-04-18 09:31:30',
          '2016-04-18 09:41:31',
          '2016-04-18 09:41:30',
          '2016-04-18 09:51:30',
          '2016-04-18 09:51:30',
          '2016-04-18 09:31:30',
          '2016-04-18 09:31:30'],
    'B': list(range(9))
})
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
print (df)
             Timestamp  B
0  2016-04-18 09:31:30  0
1  2016-04-18 09:31:30  1
2  2016-04-18 09:31:30  2
3  2016-04-18 09:41:31  3
4  2016-04-18 09:41:30  4
5  2016-04-18 09:51:30  5
6  2016-04-18 09:51:30  6
7  2016-04-18 09:31:30  7
8  2016-04-18 09:31:30  8

整个代码演示 https://ide.geeksforgeeks.org/fq59Cm8Hqt只有代码是Java

答案 1 :(得分:-1)

没关系。答案是:

for(int k = -5; k<=5; k++) {
    for(int j = 0; j<5; j++) {
        if ((j-k>=0) &&(j-k<5)) {
            printf("%d ", tomb[j][j-k]);
        }
    }
    printf("\n");
}