質問編集履歴

1

ソースミス

2020/10/16 14:14

投稿

cuttman_bro
cuttman_bro

スコア7

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 5
63
+ #define INDI 3
72
64
 
73
- #define EMPTY -1
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, r;
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("スタック実現するプログラム\n");
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
- scanf("%d", &n);
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
- 正の整数: 格納,負の整数: 取出,0: 表示
109
+ if(n == a[tate][yoko]){
130
110
 
131
- [戻り値]
111
+ count++;
132
112
 
133
- 格納の場合) スタックが満杯: マクロ定数 FULL,それ以外: 0
113
+ printf("a[%d][%d]が%dです\n",tate,yoko,n);
134
114
 
135
- 取出場合) スタックが空: マクロ定数 EMPTY,それ以外: した
115
+ printf("2次元配列 a 要素に %d %d 個あした\n",n,count);
136
116
 
137
- 表示の場合) 0
117
+ }
138
118
 
139
- */
119
+
140
120
 
141
- int func(int a)
121
+
142
122
 
143
- {
123
+ }}
144
124
 
145
- static int retu[N];
146
125
 
147
-
148
126
 
149
- static int kosu = 0;
127
+
150
128
 
151
- int i;
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