fork download
  1. #include <stdio.h>
  2. int p(int *a, int size) {
  3. int i;
  4. putchar('[');
  5. for (i = 0; i < size; i++) printf("%s%d", 0 < i ? ", " : "", a[i]);
  6. putchar(']');
  7. }
  8. void comb2_do(int *a, int size, void (*f)(), void *context) {
  9. int i, j;
  10. for (i = 0; i < size; i++)
  11. for (j = i + 1; j < size; j++) f(a[i], a[j], context);
  12. }
  13. void _bc100(int b, int c, int *count) {
  14. if (b + c == 100) printf("%s[%d, %d]", 0 < (*count)++ ? ", " : "", b, c);
  15. }
  16. int f11236(int *a, int size) {
  17. int count = 0;
  18. p(a, size);
  19. printf("\n-> [");
  20. comb2_do(a, size, _bc100, &count);
  21. puts("]\n");
  22. }
  23. int main() {
  24. int a[] = {1, 99, 20};
  25. int b[] = {62, 116, 181, 86, 60, 98, -16, 73, 131, 16, 80, -81, 40};
  26. int c[] = {100, 0, 100, 0};
  27. #define F11236(a) f11236(a, sizeof a / sizeof *a)
  28. F11236(a);
  29. F11236(b);
  30. F11236(c);
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 4480KB
stdin
Standard input is empty
stdout
[1, 99, 20]
-> [[1, 99]]

[62, 116, 181, 86, 60, 98, -16, 73, 131, 16, 80, -81, 40]
-> [[116, -16], [181, -81], [60, 40]]

[100, 0, 100, 0]
-> [[100, 0], [100, 0], [0, 100], [100, 0]]