teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2020/06/30 17:25

投稿

submaru
submaru

スコア18

title CHANGED
File without changes
body CHANGED
@@ -1,2 +1,281 @@
1
1
  cc -Wall -W ファイル名
2
- でコンパイルした際、宣言して使っているにも関わらずコンパイル時に「使用されない変数」と出てきてしまいます。原因として考えられるのはどんなことですか?-Dオプションを使っているのですが、関係はあるのでしょうか?
2
+ でコンパイルした際、宣言して使っているにも関わらずコンパイル時に「使用されない変数」と出てきてしまいます。原因として考えられるのはどんなことですか?-Dオプションを使っているのですが、関係はあるのでしょうか?
3
+
4
+ ### 該当のソースコード
5
+
6
+ ```c
7
+ #include <stdio.h>
8
+ #include <stdlib.h>
9
+
10
+ #ifdef hairetsu_riyou
11
+
12
+ void bubble_sort_array(int a[], int n);
13
+ void selection_sort_array(int a[], int n);
14
+ void insertion_sort_array(int a[], int n);
15
+ void shell_sort_array(int a[], int n);
16
+
17
+ #else
18
+ typedef struct {
19
+ int key;
20
+ int data;
21
+ }kozotai;
22
+
23
+ void bubble_sort_kozotai(kozotai a[] , int n);
24
+ void selection_sort_kozotai(kozotai a[] , int n);
25
+ void insertion_sort_kozotai(kozotai a[] , int n);
26
+ void shell_sort_kozotai(kozotai a[], int n);
27
+
28
+ #endif
29
+
30
+ int main(void){
31
+ int i, tmp;
32
+
33
+ int n=100;
34
+
35
+ #ifdef hairetsu_riyou
36
+ int hairetsu[100]={412, 54, 595, 329, 24, 488, 313, 272, 129, 210,
37
+ 670, 516, 342, 541, 491, 640, 167, 117, 726, 206,
38
+ 474, 762, 153, 292, 1000, 607, 151, 661, 93, 270,
39
+ 737, 531, 641, 548, 299, 287, 547, 394, 550, 474,
40
+ 443, 261, 707, 503, 403, 739, 226, 646, 778, 588,
41
+ 427, 169, 477, 572, 412, 299, 88, 321, 54, 778,
42
+ 541, 680, 210, 272, 288, 276, 405, 307, 424, 668,
43
+ 756, 255, 190, 449, 35, 435, 91, 486, 58, 408,
44
+ 4, 63, 534, 329, 701, 65, 256, 311, 586, 403,
45
+ 459, 254, 291, 333, 42, 343, 418, 512, 164, 56};
46
+
47
+ for(i=0;i<n;i++){
48
+ printf("hairetsu[%d]= %d\n" , i, hairetsu[i]);
49
+ }
50
+
51
+ #ifdef BUB
52
+ bubble_sort_array(hairetsu ,n);
53
+ #endif
54
+ #ifdef SEL
55
+ selection_sort_array(hairetsu, n);
56
+ #endif
57
+ #ifdef INS
58
+ insertion_sort_array(hairetsu, n);
59
+ #endif
60
+ #ifdef SHL
61
+ shell_sort_array(hairetsu, n);
62
+ #endif
63
+
64
+ printf("\n\nソート後\n\n");
65
+ for(i=0;i<n;i++){
66
+ printf("hairetsu[%d]= %d\n" , i, hairetsu[i]);
67
+ }
68
+
69
+ tmp = hairetsu[9]; hairetsu[9] = hairetsu[89]; hairetsu[89] = tmp;
70
+ tmp = hairetsu[49]; hairetsu[49] = hairetsu[59]; hairetsu[59] = tmp;
71
+ printf("\n\nほぼソート済\n\n");
72
+ for(i=0;i<n;i++){
73
+ printf("hairetsu[%d]= %d\n" , i, hairetsu[i]);
74
+ }
75
+ #ifdef BUB
76
+ bubble_sort_array(hairetsu ,n);
77
+ #endif
78
+ #ifdef SEL
79
+ selection_sort_array(hairetsu, n);
80
+ #endif
81
+ #ifdef INS
82
+ insertion_sort_array(hairetsu, n);
83
+ #endif
84
+ #ifdef SHL
85
+ shell_sort_array(hairetsu, n);
86
+ #endif
87
+
88
+ printf("\n\nソート後\n\n");
89
+ for(i=0;i<n;i++){
90
+ printf("hairetsu[%d]= %d\n" , i, hairetsu[i]);
91
+ }
92
+
93
+
94
+
95
+ #else
96
+ kozotai table[100];
97
+
98
+ for(i=0;i<n;i++){
99
+ table[i].key=i;
100
+ table[i].data=rand()%893;
101
+ }
102
+
103
+ for(i=0;i<n;i++){
104
+ printf("table[%d].key= %d table[%d].data= %d\n" , i, table[i].key, i, table[i].data);
105
+ }
106
+
107
+ #ifdef BUB
108
+ bubble_sort_kozotai(table, n);
109
+ #endif
110
+ #ifdef SEL
111
+ selection_sort_kozotai(table, n);
112
+ #endif
113
+ #ifdef INS
114
+ insertion_sort_kozotai(table, n);
115
+ #endif
116
+ #ifdef SHE
117
+ shell_sort_kozotai(table, n);
118
+ #endif
119
+
120
+ printf("\n\nソート後\n\n");
121
+
122
+ for(i=0;i<n;i++){
123
+ printf("table[%d].key= %d table[%d].data= %d\n" , i, table[i].key, i, table[i].data);
124
+ }
125
+ #endif
126
+
127
+ return 0;
128
+
129
+ }
130
+
131
+
132
+ #if hairetsu_riyou
133
+
134
+ void bubble_sort_array(int a[], int n);
135
+ int i, j, t;
136
+ for (i = 0; i < n-1; i++) {
137
+ j = n;
138
+ while (j > i) {
139
+ if (a[j-1] > a[j]) {
140
+ t = a[j];
141
+ a[j] = a[j-1];
142
+ a[j-1] = t;
143
+ }
144
+ j--;
145
+ }
146
+ }
147
+ }
148
+
149
+
150
+ void selection_sort_array(int a[], int n){
151
+ int i, j, t, lowest, lowkey;
152
+ for (i = 0; i < n-1; i++) {
153
+ lowest = i;
154
+ lowkey = a[i];
155
+ for (j = i+1; j < n; j++) {
156
+ if (lowkey > a[j]) {
157
+ lowest = j;
158
+ lowkey = a[j];
159
+ }
160
+ t = a[lowest];
161
+ a[lowest] = a[i];
162
+ a[i] = t;
163
+ }
164
+ }
165
+
166
+
167
+ void insertion_sort_array(int a[], int n){
168
+ int i, j, t;
169
+
170
+ for(i=1; i<n; i++ ){
171
+ j=i;
172
+ while(j>=1 && a[j-1] >a[j]){
173
+ t = a[j];
174
+ a[j]=a[j-1];
175
+ a[j-1]=t;
176
+ j--;
177
+ }
178
+ }
179
+ }
180
+
181
+ void shell_sort_array(int a[], int n){
182
+ int i, j, k, t, w, hikaku=0, koukan=0;
183
+
184
+ t = n / 2;
185
+ while (t > 0) {
186
+ for (i = 1; i <= t; i++) {
187
+ for (j = i + t; i <= n; j = j + t) {
188
+ w = a[j];
189
+ k = j - t;
190
+ while (k > 0) {
191
+ if (a[k] <= w) {break;}
192
+ a[k+t] = a[k];
193
+ k = k - t;
194
+ }
195
+ a[k+t] = w;
196
+ }
197
+ }
198
+ t = t / 2;
199
+ }
200
+ }
201
+
202
+ #else
203
+ void bubble_sort_kozotai(kozotai a[], int n){
204
+
205
+ int i, j;
206
+ kozotai t;
207
+
208
+ for (i = 0; i < n-1; i++) {
209
+ j = n;
210
+ while (j > i) {
211
+ if (a[j-1].data > a[j].data) {
212
+ t = a[j];
213
+ a[j] = a[j-1];
214
+ a[j-1] = t;
215
+ }
216
+ j--;
217
+ }
218
+ }
219
+ }
220
+
221
+ void selection_sort_kozotai(kozotai a[], int n){
222
+
223
+ int i, j, lowest, lowkey;
224
+ kozotai t;
225
+
226
+ for (i = 0; i < n-1; i++) {
227
+ lowest = i;
228
+ lowkey = a[i].data;
229
+ for (j = i+1; j < n; j++) {
230
+ if (a[lowest].data > a[j].data) {
231
+ lowest = j;
232
+ lowkey = a[j].data;
233
+ }
234
+ }
235
+ t = a[lowest];
236
+ a[lowest] = a[i];
237
+ a[i] = t;
238
+ }
239
+ }
240
+
241
+ void insertion_sort_kozotai(kozotai a[], int n){
242
+
243
+ int i, j;
244
+ kozotai t;
245
+
246
+ for(i=1; i<n; i++ ){
247
+ j=i;
248
+ while(j>=1 && a[j-1].data >a[j].data){
249
+ t = a[j];
250
+ a[j]=a[j-1];
251
+ a[j-1]=t;
252
+ j--;
253
+ }
254
+ }
255
+ }
256
+
257
+ void shell_sort_kozotai(kozotai a[], int n){
258
+
259
+ int i, j, k, t;
260
+ kozotai w;
261
+
262
+ t = n / 2;
263
+ while (t > 0) {
264
+ for (i = 1; i <= t; i++) {
265
+ for (j = i + t; i <= n; j = j + t) {
266
+ w = a[j];
267
+ k = j - t;
268
+ while (k > 0) {
269
+ if (a[k].data <= w.data) {break;}
270
+ a[k+t] = a[k];
271
+ k = k - t;
272
+ }
273
+ a[k+t] = w;
274
+ }
275
+ }
276
+ t = t / 2;
277
+ }
278
+ }
279
+
280
+ #endif
281
+ ```