fork download
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int a[] = {1, 2, 3, 4, 5};
  5. int b[] = {1, 2, 3, 4, 5, 6};
  6. int len, count, i, j, k, arylen, m, t, sum;
  7.  
  8. printf("1回あたりの長さ = ");
  9. scanf("%d", &len);
  10. printf("回数 = ");
  11. scanf("%d", &count);
  12.  
  13. printf("例1\n");
  14. arylen = sizeof(a) / sizeof(a[0]);
  15. k = 0;
  16. for (i = 0; i < count; ++i) {
  17. printf("%d回目 ", i+1);
  18. for (j = 0; j < len; ++j) {
  19. printf("a[%d]=%d ", k, a[k]);
  20. k = (k + 1) % arylen;
  21. }
  22. printf("\n");
  23. }
  24.  
  25. printf("例2\n");
  26.  
  27. arylen = sizeof(b) / sizeof(b[0]);
  28. k = 0;
  29. for (i = 0; i < count; ++i) {
  30. printf("%d回目 ", i+1);
  31. m = -1;
  32. for (j = 0; j < len; ++j) {
  33. printf("b[%d]=%d ", k, b[k]);
  34. t = b[k];
  35. sum = 0;
  36. while (t) {
  37. sum += (t & 1);
  38. t = t >> 1;
  39. }
  40. // printf("sum=%d\n", sum);
  41. if (sum == 1)m = k;
  42. k = (k + 1) %
  43. arylen;
  44. }
  45. if (m >= 0)k = (m + 1) %
  46. arylen;
  47. printf("\n");
  48. }
  49.  
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0s 1836KB
stdin
3
5
stdout
1回あたりの長さ = 回数 = 例1
1回目 a[0]=1 a[1]=2 a[2]=3 
2回目 a[3]=4 a[4]=5 a[0]=1 
3回目 a[1]=2 a[2]=3 a[3]=4 
4回目 a[4]=5 a[0]=1 a[1]=2 
5回目 a[2]=3 a[3]=4 a[4]=5 
例2
1回目 b[0]=1 b[1]=2 b[2]=3 
2回目 b[2]=3 b[3]=4 b[4]=5 
3回目 b[4]=5 b[5]=6 b[0]=1 
4回目 b[1]=2 b[2]=3 b[3]=4 
5回目 b[4]=5 b[5]=6 b[0]=1