回答編集履歴
1
関数を使うコードを追加
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
だから、i = 7, 6,
|
41
|
+
だから、i = 7, 6, ... , 0 で、j = 7, 6, 5, ... , 0
|
42
42
|
|
43
43
|
|
44
44
|
|
@@ -59,3 +59,107 @@
|
|
59
59
|
|
60
60
|
|
61
61
|
だから、j = 7, 6, ... , 0 で、i = 0, 1, 2, ... , 7
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
**追記**
|
66
|
+
|
67
|
+
解決済みになりましたね。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
同じようなことを何度も書くのが嫌な場合は、
|
72
|
+
|
73
|
+
違いだけを引数で切り替える関数にします。
|
74
|
+
|
75
|
+
```C
|
76
|
+
|
77
|
+
#include <stdio.h>
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
void print(int P[8][8], int v, int d1, int d2, const char *s)
|
82
|
+
|
83
|
+
{
|
84
|
+
|
85
|
+
int i, j, *p = &i, *q = &j;
|
86
|
+
|
87
|
+
int a1 = 0, b1 = 8, c1 = 1, a2 = 0, b2 = 8, c2 = 1;
|
88
|
+
|
89
|
+
if (v) p = &j, q = &i;
|
90
|
+
|
91
|
+
if (d1) a1 = 7, b1 = -1, c1 = -1;
|
92
|
+
|
93
|
+
if (d2) a2 = 7, b2 = -1, c2 = -1;
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
printf("\n%s\n", s);
|
98
|
+
|
99
|
+
for (*p = a1; *p != b1; *p += c1) {
|
100
|
+
|
101
|
+
for (*q = a2; *q != b2; *q += c2)
|
102
|
+
|
103
|
+
printf(" %c", ".*"[P[i][j]]);
|
104
|
+
|
105
|
+
printf("\n");
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
int main(void)
|
114
|
+
|
115
|
+
{
|
116
|
+
|
117
|
+
static int P[8][8] = {
|
118
|
+
|
119
|
+
{ 0, 1, 1, 1, 1, 0, 0, 0 },
|
120
|
+
|
121
|
+
{ 0, 1, 0, 0, 0, 0, 0, 0 },
|
122
|
+
|
123
|
+
{ 0, 1, 0, 0, 0, 0, 0, 0 },
|
124
|
+
|
125
|
+
{ 0, 1, 1, 1, 0, 0, 0, 0 },
|
126
|
+
|
127
|
+
{ 0, 1, 0, 0, 0, 0, 0, 0 },
|
128
|
+
|
129
|
+
{ 0, 1, 0, 0, 0, 0, 0, 0 },
|
130
|
+
|
131
|
+
{ 0, 1, 0, 0, 0, 0, 0, 0 },
|
132
|
+
|
133
|
+
{ 0, 1, 0, 0, 0, 0, 0, 0 },
|
134
|
+
|
135
|
+
};
|
136
|
+
|
137
|
+
print(P, 0, 0, 0, "普通のF");
|
138
|
+
|
139
|
+
print(P, 1, 0, 1, "180度回転");
|
140
|
+
|
141
|
+
print(P, 0, 1, 1, "90度回転");
|
142
|
+
|
143
|
+
print(P, 1, 1, 0, "270度回転");
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
print(P, 0, 0, 1, "左右対称");
|
148
|
+
|
149
|
+
print(P, 0, 1, 0, "上下対称");
|
150
|
+
|
151
|
+
print(P, 1, 1, 1, "右上がり対角線対称");
|
152
|
+
|
153
|
+
print(P, 1, 0, 0, "右下がり対角線対称");
|
154
|
+
|
155
|
+
}
|
156
|
+
|
157
|
+
```
|
158
|
+
|
159
|
+
質問は、コードの貼り付けに失敗しています。
|
160
|
+
|
161
|
+
<code>タグを使って修正してください。
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
また、「for分」ではなく、「for文」です。
|