回答編集履歴

1

追記

2021/12/07 02:28

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -25,3 +25,47 @@
25
25
  + ans[j][n-i+j]=temper2[j];
26
26
 
27
27
  ```
28
+
29
+ **追記**
30
+
31
+ 上記の修正でもよいのですが、Bsort を次のようにすると、
32
+
33
+ main で Bsort を呼び出す2つの for文が簡単になります。
34
+
35
+ ```c
36
+
37
+ void Bsort(int data[], int size, int d)
38
+
39
+ {
40
+
41
+ for (int i = 0; i < size; i += d) {
42
+
43
+ for (int j = i + d; j < size; j += d) {
44
+
45
+ if (data[i] > data[j]) {
46
+
47
+ int tmp = data[i];
48
+
49
+ data[i] = data[j];
50
+
51
+ data[j] = tmp;
52
+
53
+ }
54
+
55
+ }
56
+
57
+ }
58
+
59
+ }
60
+
61
+ scanf("%d", &before[i][j]);
62
+
63
+ ans[i][j] = before[i][j]; // 入力時に ans にコピー
64
+
65
+
66
+
67
+ for (i = 1; i <= n; i++) Bsort(&ans[n-i][0], i*(n+1), n+1);
68
+
69
+ for (i = 1; i < n; i++) Bsort(&ans[0][i], (n-i)*(n+1), n+1);
70
+
71
+ ```