ページ 1 / 1
5個の数を並べた時、隣り合う数の差の絶対値の和をすべて表示してください
Posted: 2010年11月14日(日) 10:42
by ホーマー
【自分のレベル・使用言語】
初心者・C言語
【問題文】
5個の1~5の数を並べた時、隣り合う数の差の絶対値の和をすべて表示してください
【解き方の制限】
①論理に考えて鉛筆を使って解くのではなく、プログラムを組んで力ずくで解く
②「ポインタ」はまだ習っていません
いろいろなページを参考にしながら、一応添付ファイルのプログラムを書いてみてコンパイルは成功しましたが
いざ実行すると、なにも表示されなくてお手上げ状態です。ソースのどこに問題点があるのか指摘
してください。お願いします。

Re:10個の数を並べた時、隣り合う数の差の絶対値の和が最大になる並びは?
Posted: 2010年11月14日(日) 10:55
by box
> いろいろなページを参考にしながら、一応以下のプログラムを書いてみてコンパイラも成功しましたが
コンパイルに成功しました、と書くのが正しいです。
コンパイラとは、コンパイルするためのソフトウェアのことですので、
コンパイラに成功した、という日本語はありません。
ところで、提示のソースコードで本当にコンパイルできましたか?
見たところ、全角空白が入ってはいけないところに入っていて、
とてもコンパイルできそうにないのですが…。
> いざ実行すると、なにも表示されなくてお手上げ状態です。ソースのどこに問題点があるのか指摘
> してください。お願いします。
Permutation関数が再帰呼び出しの形を取っていませんが、
その状態で順列が形成できるのでしょうか。
Re:10個の数を並べた時、隣り合う数の差の絶対値の和が最大になる並びは?
Posted: 2010年11月14日(日) 11:00
by ホーマー
>BOXさん
回答ありがとうございます
>コンパイルに成功しました、と書くのが正しいです。
間違った言葉遣い、修正させてもらいます。
>ところで、提示のソースコードで本当にコンパイルできましたか?
すみません、掲示板に書く際に手違いがおこってしまいました。修正させてもらいます
添付ファイルの方でお願いします。
>再帰は使っていませんが
すみません、掲示板にソースをコピーする際にぬけてしまいました。添付ファイルの方をおねがいします

Re:10個の数を並べた時、隣り合う数の差の絶対値の和が最大になる並びは?
Posted: 2010年11月14日(日) 11:27
by ホーマー
全文、少し変更・修正させてもらいました
よろしくお願いします
Re:5個の数を並べた時、隣り合う数の差の絶対値の和をすべて表示してください
Posted: 2010年11月14日(日) 17:31
by box
> 【問題文】
> 5個の1~5の数を並べた時、隣り合う数の差の絶対値の和をすべて表示してください
いつの間にか、問題文の内容が変わってましたね。
>if(AnswerList[j+1]>AnswerList[j])
> caluculatingPart[j]=AnswerList[j]-AnswerList[j-1];
この文は、何をしているのでしょうか。
日本語で書いてみてください。
この直後の
>else if(AnswerList[j+1]<AnswerList[j])
> caluculatingPart[j]=AnswerList[j]-AnswerList[j+1];
と比べてみて、考え方が合っているかどうかも確認してみてください。
その他:
1)インデント(字下げ)があったりなかったりしていて、ソースコードが見づらい。
インデントしないならしない(まあ、こういう選択肢はふつうないですが)、
するならするでポリシーを決める方がいいのではないか。
2)順列の内容を出力するとき、毎回改行を入れているので、
どこからどこまでが順列の内容で、どこが絶対値の和なのかがわかりづらい。
