程序片段
名企笔试:美团2016招聘笔试(二维数组打印)
题目描述
有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印。
给定一个二位数组arr及题目中的参数n,请打印结果数组。
测试样例:
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]],4
返回:
[4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13]
/*问题等价于打印出直线族j=i+k(-n<k<n)在由(0<=i,j<n)决定的正方形内的点*/
for(int k=n-1;k>-n;k--){
for(int i=0;i<n;i++){
if(i+k>=0&&i+k<n)
printf("%d ",arr[i][i+k]);
}
}