プログラミングの初心者です。
ある課題を出され、実行結果が思った通りにならなくて困り、
どのようにすれば思った通りの実行結果になるかずっと悩んでおります。
値を入力(例として1,2,3,4,5,6,7,8,9,0,9,8,7,6,5,4を入力)したとき
1 2 3 4
5 6 7 8
9 0 9 8
7 6 5 4
と表示されるような実行結果にしたいのです。
自分は以下のようにプログラムを組んだのですが、値を例のように入力したとき
1 5 9 7
5 9 7 6
9 7 6 5
7 6 5 4
となり、入力した例が4ずつとび、斜めに同じ数字が表示されてしまいます。
ただ
と
の部分に関しては変更せず、[]を使用してはならないという制限があります。どのようにすればポインタ(配列の配列)を使い、思った通りの実効結果にできるのか教えていただきたいです。よろしくお願いします。
思い通りの実行結果にならない
Re: 思い通りの実行結果にならない
もう少しインデントを頑張りましょう。
さて、以下の4行 のfor文を実際に展開したときの様子を書いてみてください。こんな感じに。 N x N = 16なので、16行に展開できるはずです。
ちなみに、int型なのでscanfの書式指定は「%ld」ではなく「%d」です。
参考:http://linuxjm.sourceforge.jp/html/LDP_ ... anf.3.html
さて、以下の4行 のfor文を実際に展開したときの様子を書いてみてください。こんな感じに。 N x N = 16なので、16行に展開できるはずです。
ちなみに、int型なのでscanfの書式指定は「%ld」ではなく「%d」です。
参考:http://linuxjm.sourceforge.jp/html/LDP_ ... anf.3.html
Re: 思い通りの実行結果にならない
本題とは直接関係ないのですが、
Nでよいのであれば、わざわざ引数で渡す意味がないですよね。
せっかく行・列の数をnで渡しているのですから、
Nよりもnにする方がいいのではないか、と思います。
Nでよいのであれば、わざわざ引数で渡す意味がないですよね。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 思い通りの実行結果にならない
これほど早く返事がいただけると思っておらず、返事が遅れてしまい申し訳ございませんでした。
>みけCATさん を と変更すると「,」を付け忘れています。というエラーが返ってきたので、 という順番に変えることで無事思うような結果を表示できるようになりました。
>beatleさん
インデントまた、書式指定に関しては自分の力不足でありプログラムにもっと触れるべきであると反省しております。
解答に関しては今回N=4とまだ小さい数字なのでいいのですがこれが大きい数字になるととんでもないことになるので
1つの参考とさせていただきたいと思います。
>boxさん
ご指摘ありがとうございます。これはこちらのミスです。
見直してみたところなぜjではnを渡しているのに、iではNを渡しているのか未だに謎です。
n,Nでも実行結果が同じなので直さないままここに記載してしまった可能性がありますので
気をつけたいと思います。
>みけCATさん を と変更すると「,」を付け忘れています。というエラーが返ってきたので、 という順番に変えることで無事思うような結果を表示できるようになりました。
>beatleさん
インデントまた、書式指定に関しては自分の力不足でありプログラムにもっと触れるべきであると反省しております。
解答に関しては今回N=4とまだ小さい数字なのでいいのですがこれが大きい数字になるととんでもないことになるので
1つの参考とさせていただきたいと思います。
>boxさん
ご指摘ありがとうございます。これはこちらのミスです。
見直してみたところなぜjではnを渡しているのに、iではNを渡しているのか未だに謎です。
n,Nでも実行結果が同じなので直さないままここに記載してしまった可能性がありますので
気をつけたいと思います。
Re: 思い通りの実行結果にならない
そんなことは分かります。私は、この出題を通してDropさんの理解度が向上すればいいなと思ったのです。Drop さんが書きました:解答に関しては今回N=4とまだ小さい数字なのでいいのですがこれが大きい数字になるととんでもないことになるので
1つの参考とさせていただきたいと思います。
課題に答えようとすれば、ヒントが得られると思ったから出題したのです。
実際のプログラムで16行に展開して書け、という話ではありません。Dropさんの勉強のために、16行に展開してみたらいかがですか、と提案したのです。
僕の出題に本質的な問題の解決策があると、少なくとも僕は感じています。(だから出題しているのです)