c语言生成zigzag矩阵
2015-09-14 00:00
399 查看
生成的矩阵:
00 01 05 06 02 04 07 12 03 08 11 13 09 10 14 15
#include <stdio.h> /* 0, 1, 5, 6, 2, 4, 7,12, 3, 8, 11,13, 9, 10, 14, 15. */ int vect[4][4] = {0}; void next(int vect[][4], int *i , int *j ,bool flag){ int tmp = vect[*i][*j] +1; if(flag){ *i = *i + 1 ; //down *j = *j - 1 ; //printf("down i = %d\n", *i); vect[*i][*j] = tmp ; //printf("down vect[%d][%d] = %d\n", *i,*j ,vect[*i][*j]); } else{ *i = *i - 1 ; //up *j = *j + 1 ; //printf("up i = %d\n", *i); vect[*i][*j] = tmp ; //printf("up vect[%d][%d] = %d\n", *i, *j ,vect[*i][*j]); } }; void print(){ for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { //printf("vect[%d][%d] = %d ", i,j ,vect[i][j]); printf("%02d ", vect[i][j]); } printf("\n"); } } int main(int argc, char const *argv[]) { const int N = 4 ; int j = 0 , i = 0; int count = 2; int total = 2 * N ; int line = 1 ; bool down = false ; //up bool change = false ; while(line < total ) { if(down){ int tmp = vect[i][j] ; if(change){ j ++ ; }else{ i ++ ; } vect[i][j] = tmp+1 ; down = false ; }else{ //up int tmp = vect[i][j] ; if(change){ i++ ; }else{ i = 0 ; j++; } vect[i][j] = tmp+1 ; down = true ; } //printf("count = %d\n", count);// 2 //printf("out of while : vect[%d][%d] = %d\n", i,j ,vect[i][j]); int curr = 0 ; while(curr < count -1 ){ //printf("now j =%d , i= %d \n" , j , i) ; //printf("vect= %d \n" , vect[i][j]) ; //printf("down flag is %d\n", down ); next(vect , &i , &j, down) ; curr++ ; //printf("\n"); } line ++ ; if(change){ count -- ; }else{ count ++ ; if(count > N ) { change = true ; count = count -2 ; } } } print() ; return 0 ; }
相关文章推荐
- 小白初学C++ PRIMER 第五版 第三章
- C++故障排除-VS2010 error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmai
- C/C++中问号冒号表达式的陷阱
- 【LeetCode从零单刷】Gray Code
- OJ提交题目 G++与C++的区别!!
- c++设计模式---- Bridge(桥接模式)
- c++11——改进容器性能
- 【LeetCode从零单刷】Lowest Common Ancestor of a Binary Search Tree
- 实现跨平台的C++线程库
- 深入理解C语言类型转换
- C++模板
- c++11——move/forward
- 【LeetCode从零单刷】Convert Sorted Array to Binary Search Tree
- c++字符串操作函数
- C++基础知识总结--指针
- C++ STL中的关于堆的函数
- 实现C++实用的时间库
- 【LeetCode从零单刷】Single Number III
- C语言实现单链表-01版
- Effective C++ —— 实现(五)