fork download
  1. #include <stdio.h>
  2.  
  3. typedef typeof(void (*)(int i[])) callback;
  4.  
  5. void bigfor(int levels, int i[], int size, callback cb) {
  6. int total_size = 1;
  7. for(int k = 0; k < levels; ++k) total_size *= size;
  8.  
  9. for(int counter = 0; counter < total_size; ++counter) { // глобальный цикл
  10. for(int k = 1; k < levels; ++k) { // цикл по счётчикам
  11. if(i[k - 1] >= size) {
  12. i[k - 1] = 0;
  13. ++i[k];
  14. }
  15. }
  16. cb(i);
  17. ++i[0];
  18. }
  19. }
  20.  
  21. void kukarek(int i[]) {
  22. printf("Koko! %d, %d, %d\n", i[0], i[1], i[2]);
  23. }
  24.  
  25. int main() {
  26. int i[3] = {0, 0, 0};
  27. bigfor(3, i, 5, &kukarek);
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 4544KB
stdin
Standard input is empty
stdout
Koko! 0, 0, 0
Koko! 1, 0, 0
Koko! 2, 0, 0
Koko! 3, 0, 0
Koko! 4, 0, 0
Koko! 0, 1, 0
Koko! 1, 1, 0
Koko! 2, 1, 0
Koko! 3, 1, 0
Koko! 4, 1, 0
Koko! 0, 2, 0
Koko! 1, 2, 0
Koko! 2, 2, 0
Koko! 3, 2, 0
Koko! 4, 2, 0
Koko! 0, 3, 0
Koko! 1, 3, 0
Koko! 2, 3, 0
Koko! 3, 3, 0
Koko! 4, 3, 0
Koko! 0, 4, 0
Koko! 1, 4, 0
Koko! 2, 4, 0
Koko! 3, 4, 0
Koko! 4, 4, 0
Koko! 0, 0, 1
Koko! 1, 0, 1
Koko! 2, 0, 1
Koko! 3, 0, 1
Koko! 4, 0, 1
Koko! 0, 1, 1
Koko! 1, 1, 1
Koko! 2, 1, 1
Koko! 3, 1, 1
Koko! 4, 1, 1
Koko! 0, 2, 1
Koko! 1, 2, 1
Koko! 2, 2, 1
Koko! 3, 2, 1
Koko! 4, 2, 1
Koko! 0, 3, 1
Koko! 1, 3, 1
Koko! 2, 3, 1
Koko! 3, 3, 1
Koko! 4, 3, 1
Koko! 0, 4, 1
Koko! 1, 4, 1
Koko! 2, 4, 1
Koko! 3, 4, 1
Koko! 4, 4, 1
Koko! 0, 0, 2
Koko! 1, 0, 2
Koko! 2, 0, 2
Koko! 3, 0, 2
Koko! 4, 0, 2
Koko! 0, 1, 2
Koko! 1, 1, 2
Koko! 2, 1, 2
Koko! 3, 1, 2
Koko! 4, 1, 2
Koko! 0, 2, 2
Koko! 1, 2, 2
Koko! 2, 2, 2
Koko! 3, 2, 2
Koko! 4, 2, 2
Koko! 0, 3, 2
Koko! 1, 3, 2
Koko! 2, 3, 2
Koko! 3, 3, 2
Koko! 4, 3, 2
Koko! 0, 4, 2
Koko! 1, 4, 2
Koko! 2, 4, 2
Koko! 3, 4, 2
Koko! 4, 4, 2
Koko! 0, 0, 3
Koko! 1, 0, 3
Koko! 2, 0, 3
Koko! 3, 0, 3
Koko! 4, 0, 3
Koko! 0, 1, 3
Koko! 1, 1, 3
Koko! 2, 1, 3
Koko! 3, 1, 3
Koko! 4, 1, 3
Koko! 0, 2, 3
Koko! 1, 2, 3
Koko! 2, 2, 3
Koko! 3, 2, 3
Koko! 4, 2, 3
Koko! 0, 3, 3
Koko! 1, 3, 3
Koko! 2, 3, 3
Koko! 3, 3, 3
Koko! 4, 3, 3
Koko! 0, 4, 3
Koko! 1, 4, 3
Koko! 2, 4, 3
Koko! 3, 4, 3
Koko! 4, 4, 3
Koko! 0, 0, 4
Koko! 1, 0, 4
Koko! 2, 0, 4
Koko! 3, 0, 4
Koko! 4, 0, 4
Koko! 0, 1, 4
Koko! 1, 1, 4
Koko! 2, 1, 4
Koko! 3, 1, 4
Koko! 4, 1, 4
Koko! 0, 2, 4
Koko! 1, 2, 4
Koko! 2, 2, 4
Koko! 3, 2, 4
Koko! 4, 2, 4
Koko! 0, 3, 4
Koko! 1, 3, 4
Koko! 2, 3, 4
Koko! 3, 3, 4
Koko! 4, 3, 4
Koko! 0, 4, 4
Koko! 1, 4, 4
Koko! 2, 4, 4
Koko! 3, 4, 4
Koko! 4, 4, 4