C言語関係掲示板

過去ログ

No.245.道案内プログラム作成について


No.1482

道案内プログラム作成について
投稿者---mori(2002/05/09 17:06:13)


C言語で20x20の2次元配列を使い、あらかじめ任意のマスに東京、大阪、名古屋、福岡など、他の都市もいくつか指定するとします。
例えば東京からどこかの都市に行くのに一番近道を計算し、表示するプログラムはどのようになりますか? 簡単な例などを載せていただくと助かります。分かりずらくてすみません。


No.1486

Re:道案内プログラム作成について
投稿者---kikk(2002/05/10 12:23:03)


ども。


>C言語で20x20の2次元配列を使い、あらかじめ任意のマスに東京、大阪、名古屋、福岡など、他の都市もいくつか指定するとします。
>例えば東京からどこかの都市に行くのに一番近道を計算し、表示するプログラムはどのようになりますか? 簡単な例などを載せていただくと助かります。分かりずらくてすみません。

ダイクストラ法を使えばいいと思います。
「ダイクストラ 最短経路 C言語」あたりで検索をかけてみてください。

なお、データの格納方法ですが、配列の添え字を町の番号(適当に決めてOK)
として、直接いくことのできるところに、その距離を格納しておき、
自分自身は0、直接いけないところは十分大きな値(例えばINT_MAX)を
入れておきます(と、検索してみつかるページに書いてあると思います)。
例えばA町を0、B町を1ときめて、AB間の距離が100だとすると、
distance[0][1]=100;/*A->B*/ distance[1][0]=100;/*B->A*/
といった感じで。もし、一方通行があるならば、行けないほうは十分大きな
値を入れてください。


あと、表示のために、

char *cityname[] = {
"東京", /*町番号0*/
"名古屋", /*町番号1*/
"大阪", /*町番号2*/
:
};

みたいなのを用意するといいかも。


では。

No.1491

Re:道案内プログラム作成について
投稿者---mori(2002/05/11 13:28:35)


kikkさん早速のレスありがとうございました。ダイクストラですが、初めて知りました。また質問があったら載せさせて頂きたいと思います。

では

戻る


「初心者のためのポイント学習C言語」 Last modified:2002.06.22
Copyright(c) 2000-2002 TOMOJI All Rights Reserved