先日、学校で以下のような課題が出たのでプログラムを作ったのですが、
エラーが出てしまい、どうしても実行できません。
ソースを添付しましたので、どこがどう間違っているのか添削していただけないでしょうか?
ちなみにOSはリナックスです。
---------------------------------------------------------------------
下記の補足課題を<仕様>の通りに改変せよ
<仕様>
以下のような5つの関数を定義し,活用する.
(1) set_food_on_road関数
・機能: 道に食べ物をセットする
・引数: 道に残る食べ物の情報を格納する配列
・戻り値: 無し
(2) direction関数
・機能: -1 または +1をランダムに出力する
・引数: 無し
・戻り値: -1 または +1の整数値
(3) boundary関数
・機能: 動物のx座標が境界に達した場合の補正処理
(もし座標が-1になったら19にする.もし座標が20になったら0にする)
・引数: 補正前の動物のx座標
・戻り値: 補正後のx座標
(4) count_rest_food関数
・機能: 食べ物の残りをカウントする
・引数: 道に残る食べ物の情報を格納する配列
・戻り値: 道に残っている食べ物の総数
(5) disp_road_status関数
・機能: 道の各位置の状態の表示・・・食べ物の有("*")/無("-"),動物"O")
・引数: 道に残る食べ物の情報を格納する配列,及び動物の座標
・戻り値: 無し
※グローバル変数は使わないこと.
--------------------------------------------------------------------
<補足課題>
1本の道に,食べ物が多数落ちている.
ランダムに動く動物が,それらを全て食べ尽くすと終了するようなプログラムを作成せよ.
「道」は要素数20程度の1次元配列で表現する.
「食べ物」は,上記配列の各要素に値1があればその場所に存在し,値0であればその場所には存在しないものとする.
「動物」は,1回の移動で配列中の1つ左または1つ右に移動できる.
「動物」の訪れた場所のエサは食べられたものとする.
「道のうち食べ物のない箇所」,「道のうち食べ物のある箇所」,「動物」は,それぞれ -, *, O で表現する.それらを横一列の文字で表示する.
繰り返し処理中は,毎回数十~数百ミリ秒程度の時間,実行を一時停止させることで,状態の推移を見やすくする.
課題のソースについて
Re:課題のソースについて
こちらですね。
http://www.play21.jp/board/formz.cgi?ac ... q&rln=8442
ただ、前回と違うのは関数化について今回明言されているところでしょうか
(前回は関数化については指定されていませんでした)
それと、
>エラーが出てしまい、どうしても実行できません。
エラーが出たのであれば、どの時点でどういったエラーが出たのかを明記していただかないと答えられません。
#回答者がコンパイル/実行をすれば話は別ですが
添付ファイルのソースをざっと見ただけですが、コンパイルエラーが起きるような箇所は見受けられませんでした。
詳細なエラー情報の提示をお願いします。
http://www.play21.jp/board/formz.cgi?ac ... q&rln=8442
ただ、前回と違うのは関数化について今回明言されているところでしょうか
(前回は関数化については指定されていませんでした)
それと、
>エラーが出てしまい、どうしても実行できません。
エラーが出たのであれば、どの時点でどういったエラーが出たのかを明記していただかないと答えられません。
#回答者がコンパイル/実行をすれば話は別ですが
添付ファイルのソースをざっと見ただけですが、コンパイルエラーが起きるような箇所は見受けられませんでした。
詳細なエラー情報の提示をお願いします。
Re:課題のソースについて
エラーは出ないようですが、警告が出てますね。
int の範囲を越えるようです。
RAND_MAX と、INT_MAX の値が同じなので、そのあたりをどうにかしないといけないかもしれません。
(INT_MAX+1が、INT_MIN になる。負数になる)
int の範囲を越えるようです。
RAND_MAX と、INT_MAX の値が同じなので、そのあたりをどうにかしないといけないかもしれません。
(INT_MAX+1が、INT_MIN になる。負数になる)