- #include <stdio.h>
- /*打印数组*/
- extern void print_array(int array[], int size);
- int visited[3] = {0};
- int main_n_loop(){
- int k = 2;
- visited[k] = -1;
- while(1){
- if(visited[k] < 1){
- visited[k]++;
- k = 2;
- /*do something*/
- print_array(visited, 3);
- }else{
- visited[k] = 0;
- k--;
- }
- if(k < 0)
- break;
- }
- return 0;
- }
- #include <stdio.h>
- int array[5] = {0};
- int limit[5] = {10,10,10,10,10};/*每层循环都有一个上限,到达上限将置0*/
- /*print every item of array*/
- void print_array(int array[], int size){
- for(int i = 0; i < size; i++){
- printf("%d ", array[i]);
- }
- printf("/n");
- }
- /*实现任意n层循环*/
- void m_step_loop1(int array[], int limit[], int size){
- int k = size - 1;
- while(true){
- while(k >= 0){
- if(array[k] < limit[k] - 1){
- array[k]++;
- k = size - 1; /*再无进位则退至最后一位循环*/
- break;
- }else{
- array[k] = 0;
- k -- ;
- }
- }
- if(k < 0)
- break;
- /*add your code here*/
- print_array(array, size);
- }
- }
- int m_step_loop_main(){
- m_step_loop1(array, limit, 2);
- return 0;
- }

3324

被折叠的 条评论
为什么被折叠?



