回答編集履歴

4

追加

2023/11/12 16:39

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -12,3 +12,39 @@
12
12
 
13
13
  それともう一つ、 g 関数は『スタック2からPopしたデータを出力する』が仕様です。
14
14
  この場合の出力とは (関数値として return することでは無く) 『表示』のことです。
15
+
16
+ あくまで想像ですが、実行結果として書かれているのは"そのまま日本語部分までそのようにしろ"ということでは無いのではないでしょうか。
17
+ 実際の表示は以下で良いように思います。
18
+ ```
19
+ s1[4]=0 s2[4]=0
20
+ s1[3]=1 s2[3]=0
21
+ s1[2]=2 s2[2]=0
22
+ s1[1]=3 s2[1]=0
23
+ s1[0]=4 s2[0]=0
24
+
25
+ s1[4]=0 s2[4]=0
26
+ s1[3]=0 s2[3]=0
27
+ s1[2]=2 s2[2]=0
28
+ s1[1]=3 s2[1]=0
29
+ s1[0]=4 s2[0]=1
30
+
31
+ s1[4]=0 s2[4]=0
32
+ s1[3]=0 s2[3]=0
33
+ s1[2]=0 s2[2]=0
34
+ s1[1]=3 s2[1]=2
35
+ s1[0]=4 s2[0]=1
36
+
37
+ 2
38
+ s1[4]=0 s2[4]=0
39
+ s1[3]=0 s2[3]=0
40
+ s1[2]=0 s2[2]=0
41
+ s1[1]=3 s2[1]=0
42
+ s1[0]=4 s2[0]=1
43
+
44
+ 1
45
+ s1[4]=0 s2[4]=0
46
+ s1[3]=0 s2[3]=0
47
+ s1[2]=0 s2[2]=0
48
+ s1[1]=3 s2[1]=0
49
+ s1[0]=4 s2[0]=0
50
+ ```

3

修正

2023/11/12 16:31

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -5,7 +5,7 @@
5
5
  ```
6
6
  で s1 としているほうにも s2 としているほうにも `s` の値を使っている点でしょう。
7
7
  一回の Print の呼び出しを二回にしてそれぞれにスタックを渡すようにすることでエラーメッセージを消したようですが、修正の方向が違います。
8
- Print で二つのスタックを表示するのなら、呼ぶ側でパラメータとして二つのスタックを渡すのは正しく、呼ばれる側の **Print 関数側がパラメータとして二つのスタックを受け取るようになっていなかった** のが問題だったのです。
8
+ Print で二つのスタックを表示するのなら、呼ぶ側でパラメータとして二つのスタックを渡すのは正しく、呼ばれる側の **Print 関数側がパラメータとして二つのスタックを受け取るようになっていなかった** のが問題だったのです。
9
9
 
10
10
  Print の件数が少なくなるのは、 printf を囲む for 文がそのように書いてあるからです。
11
11
  スタックの各変数が動作によってどのように変化するのか、 Print 時にはどの変数が幾つになっていて、欲しい結果の為にはどの変数を使う必要があるのかを考えてみてください。

2

修正

2023/11/12 16:25

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -11,4 +11,4 @@
11
11
  スタックの各変数が動作によってどのように変化するのか、 Print 時にはどの変数が幾つになっていて、欲しい結果の為にはどの変数を使う必要があるのかを考えてみてください。
12
12
 
13
13
  それともう一つ、 g 関数は『スタック2からPopしたデータを出力する』が仕様です。
14
- この場合の出力は『表示』と同義と思いまが、現状表示はしていません
14
+ この場合の出力 (関数値として return することでは無く) 『表示』のこす。

1

追加修正

2023/11/12 16:23

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -5,7 +5,10 @@
5
5
  ```
6
6
  で s1 としているほうにも s2 としているほうにも `s` の値を使っている点でしょう。
7
7
  一回の Print の呼び出しを二回にしてそれぞれにスタックを渡すようにすることでエラーメッセージを消したようですが、修正の方向が違います。
8
- Print で二つのスタックを表示するのなら、呼ぶ側でパラメータとして二つのスタックを渡すのは正しく、呼ばれる側の Print 関数側が **二つのスタックを受け取れるようになっていなかった** のが問題だったのです。
8
+ Print で二つのスタックを表示するのなら、呼ぶ側でパラメータとして二つのスタックを渡すのは正しく、呼ばれる側の **Print 関数側がパラメータとして二つのスタックを受け取れるようになっていなかった** のが問題だったのです。
9
+
10
+ Print の件数が少なくなるのは、 printf を囲む for 文がそのように書いてあるからです。
11
+ スタックの各変数が動作によってどのように変化するのか、 Print 時にはどの変数が幾つになっていて、欲しい結果の為にはどの変数を使う必要があるのかを考えてみてください。
9
12
 
10
13
  それともう一つ、 g 関数は『スタック2からPopしたデータを出力する』が仕様です。
11
14
  この場合の出力は『表示』と同義と思いますが、現状表示はしていません。