|
发表于 2019-12-23 02:46:05
|
显示全部楼层
本楼为最佳答案
- #include <stdio.h>
- main(void)
- {
- int i , j , k , n ;
- scanf("%d" , & n) ;
- int d[n * n] , e[n * n] ;
- for(k = 0 ; k < n * n ; k ++) scanf("%d" , & d[k]) ;
- e[0] = d[0] ;
- for(i = 0 , j = 0 , k = 1 ; k < n * n ;) {
- if(! i || i == n - 1) j ++ ;
- else i ++ ;
- if(! i || j == n - 1) {
- for(;; i ++ , j --) {
- e[k ++] = d[i * n + j] ;
- if(i == n - 1 || ! j) break ;
- }
- } else {
- for(;; i -- , j ++) {
- e[k ++] = d[i * n + j] ;
- if(! i || j == n - 1) break ;
- }
- }
- }
- printf("%d" , e[0]) ;
- for(k = 1 ; k < n * n ; k ++) printf(" %d" , e[k]) ;
- printf("\n") ;
- }
复制代码
编译、运行实况:
- C:\Bin>g++ -o x x.c
- C:\Bin>x
- 4
- 1 5 3 9
- 3 7 5 6
- 9 4 6 4
- 7 3 1 3
- 1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3
- C:\Bin>
复制代码 |
|