質問編集履歴
1
ソースミス
test
CHANGED
File without changes
|
test
CHANGED
@@ -58,25 +58,11 @@
|
|
58
58
|
|
59
59
|
```
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
61
|
#include <stdio.h>
|
70
62
|
|
71
|
-
#define N
|
63
|
+
#define INDI 3
|
72
64
|
|
73
|
-
#define
|
65
|
+
#define INDJ 4
|
74
|
-
|
75
|
-
#define FULL -2
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
int func(int);
|
80
66
|
|
81
67
|
|
82
68
|
|
@@ -84,127 +70,75 @@
|
|
84
70
|
|
85
71
|
{
|
86
72
|
|
73
|
+
int a[INDI][INDJ] = {
|
74
|
+
|
75
|
+
{ 1, 8, 11, 3},
|
76
|
+
|
77
|
+
{ 9, 5, 0, 7},
|
78
|
+
|
79
|
+
{ 5, 10, 4, 6},
|
80
|
+
|
81
|
+
};
|
82
|
+
|
87
|
-
int n
|
83
|
+
int n;
|
84
|
+
|
85
|
+
int i;
|
86
|
+
|
87
|
+
int yoko;
|
88
|
+
|
89
|
+
int tate;
|
90
|
+
|
91
|
+
int result;
|
92
|
+
|
93
|
+
int count;
|
94
|
+
|
95
|
+
/* 必要に応じて変数宣言を追加 */
|
88
96
|
|
89
97
|
|
90
98
|
|
91
|
-
printf("
|
99
|
+
printf("数値を入力してください: ");
|
92
100
|
|
93
|
-
printf(" 正の整数値:入力値をスタックに格納する(Push)\n");
|
94
|
-
|
95
|
-
printf(" 負の整数値:スタックからデータを取り出す(Pop)\n");
|
96
|
-
|
97
|
-
printf(" 0:終了\n");
|
98
|
-
|
99
|
-
while (1) {
|
100
|
-
|
101
|
-
printf("整数値を入力 (正:格納,負:取出,0:終了): ");
|
102
|
-
|
103
|
-
|
101
|
+
scanf("%d", &n);
|
104
|
-
|
105
|
-
if (n == 0) break; /* 終了 */
|
106
|
-
|
107
|
-
r = func(n); /* 格納または取出 */
|
108
|
-
|
109
|
-
func(0); /* 表示 */
|
110
|
-
|
111
|
-
if (r > 0) printf("取出データ: %d\n", r); /* 取得データの表示 */
|
112
|
-
|
113
|
-
else if (r == EMPTY) printf("エラー(スタックが空です)\n");
|
114
|
-
|
115
|
-
else if (r == FULL ) printf("エラー(スタックが満杯です)\n");
|
116
|
-
|
117
|
-
}
|
118
|
-
|
119
|
-
return 0;
|
120
|
-
|
121
|
-
}
|
122
102
|
|
123
103
|
|
124
104
|
|
125
|
-
|
105
|
+
for (tate=0; tate<3;tate++){
|
126
106
|
|
127
|
-
|
107
|
+
for (yoko=0; yoko<4;yoko++){
|
128
108
|
|
129
|
-
|
109
|
+
if(n == a[tate][yoko]){
|
130
110
|
|
131
|
-
|
111
|
+
count++;
|
132
112
|
|
133
|
-
|
113
|
+
printf("a[%d][%d]が%dです\n",tate,yoko,n);
|
134
114
|
|
135
|
-
|
115
|
+
printf("2次元配列 a の要素に %d は %d 個ありました\n",n,count);
|
136
116
|
|
137
|
-
|
117
|
+
}
|
138
118
|
|
139
|
-
|
119
|
+
|
140
120
|
|
141
|
-
|
121
|
+
|
142
122
|
|
143
|
-
|
123
|
+
}}
|
144
124
|
|
145
|
-
static int retu[N];
|
146
125
|
|
147
|
-
|
148
126
|
|
149
|
-
|
127
|
+
|
150
128
|
|
151
|
-
int
|
129
|
+
printf("2次元配列 a の要素に %d はありません\n", n);
|
152
130
|
|
153
131
|
|
154
132
|
|
155
133
|
|
156
134
|
|
157
|
-
if (a > 0) {
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
if (kosu == N) return FULL;
|
162
|
-
|
163
135
|
|
164
|
-
|
165
|
-
retu[size++] = a;
|
166
|
-
|
167
|
-
}
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
else if (a < 0) {
|
174
|
-
|
175
|
-
if (kosu == 0) return EMPTY;
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
return retu[--kosu];
|
180
|
-
|
181
|
-
}
|
182
|
-
|
183
|
-
|
184
136
|
|
185
137
|
|
186
138
|
|
187
|
-
else {
|
188
|
-
|
189
|
-
printf("size = %d [", kosu);
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
for (i = 0; i < kosu; i++) printf("%d ", retu[i]);
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
printf("]\n");
|
200
|
-
|
201
|
-
}
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
return 0;
|
206
139
|
|
207
140
|
|
141
|
+
return 0;
|
208
142
|
|
209
143
|
|
210
144
|
|