#1
by ええええ » 6年前
#include <stdio.h>
#include <math.h>
#define place 35
typedef struct
{
int banngou;
double x,y;
char name[22];
int kosuu;
int tonari[9];
}mapdate;
mapdate yonezawa[35];
void read_data(char *filename)
{
{
FILE *fp;
int i,j;
fp = fopen(filename, "r");
if (fp == NULL)
{
printf("ファイル作成失敗 \n");
}
for(i=0;i<35;i++)
{
fscanf(fp, "%d,%lf,%lf,%[^,],%d,\n",&yonezawa.banngou,&yonezawa.x,&yonezawa.y,yonezawa.name,yonezawa.kosuu,yonezawa.tonari);
for(j=0;j<yonezawa.kosuu;j++)
{
fscanf(fp,"%d",yonezawa.tonari[j]);
}
fclose(fp);
}
void main()
{
int i,j,k,banngou,banngou2;
int f=0;
read_data("map.dat");
printf("交差点の番号を入れて下さい.\n");
scanf("%d",&banngou2);
for(i=0;i<35;i++)
{
printf("%d,%lf,%lf,%s,%d,%d \n",yonezawa.banngou,yonezawa.x,yonezawa[i].y,yonezawa[i].name,yonezawa[i].kosuu,yonezawa[i].tonari);
f=1;
}
if(f==0) printf("交差点が見つかりません \n");
{
for(j=0;j<yonezawa[i].kosuu;j++)
{
printf("隣接する交差番号は%dです。\n",yonezawa[i].tonari[j]);
printf("隣接する交差名は%sです。\n",yonezawa[yonezawa[i].tonari[j]-1].name);
}
{
float A[2],B[2],d;
printf("打ち込んだ点と隣接間の距離を求める\n");
printf("打ち込んだ点のx座標:"); scanf("%lf",&A[0]);
printf("打ち込んだ点のy座標:"); scanf("%lf",&A[1]);
d=sqrt(pow(A[0]-B[0],2)+pow(A[1]-B[1],2));
printf("打ち込んだ点と隣接間の距離は%f\n",d);
}
}
}
}
}
まずもともとの問題として1.交差点番号を打ち込むと,隣接する交差点名と交差点番号および打ち込んだ交差点からの距離を表示させるプログラムを作成しなさい.という問題で外部からデータファイルmap.dat(1, 76.0, -233.0, 西米沢駅, 1, 2
2, 204.0, -249.0, 西部小学校, 5, 1, 3, 4, 17, 33
3, 177.0, -85.0, ニトリ, 3, 2, 4, 6
4, 281.0, -185.0, 木場町, 3, 2, 3, 5
5, 458.0, -158.0, 法泉寺, 3, 4, 6, 18
6, 439.0, -55.0, 徳町, 3, 3, 5, 7
7, 546.0, -64.0, 中央高校, 3, 6, 8, 9
8, 563.0, -16.0, 総合公園, 1, 7
9, 789.0, -110.0, 市役所, 3, 7, 10, 16
10, 1064.0, -174.0, 花沢郵便局, 2, 9, 11
11, 1129, -143, 花沢, 2, 10, 12
12, 1249, -457, ルートインホテル, 2, 11, 13
13, 1088, -463, 米沢駅, 3, 12, 14, 22
14, 836, -419, 大町, 3, 13, 15, 22
15, 727, -396, 大沼デパート, 4, 14, 16, 19, 21
16, 743, -317, 立町, 3, 9, 15, 17
17, 657, -294, 第一ホテル, 4, 2, 16, 18, 19
18, 675, -192, 西宮戎神社, 2, 5, 17
19, 640, -374, 興譲小学校, 3, 15, 17, 20
20, 628, -428, 門東町, 4, 19, 21, 26, 33
21, 715, -453, 花膳, 4, 15, 20, 22, 24
22, 860, -475, 相生町, 4, 13, 14, 21, 23
23, 922, -717, ホテル平成, 2, 22, 24
24, 670, -651, 南部小学校, 3, 21, 23, 25
25, 598, -643, エネオス, 3, 24, 26, 28
26, 613, -499, ファミリーマート, 3, 20, 25, 27
27, 540, -477, 上杉神社, 1, 26
28, 593, -712, 城南, 3, 25, 29, 34
29, 536, -701, 山大正門, 3, 28, 30, 31
30, 530, -742, 山形大学, 1, 29
31, 413, -672, 第二中学校, 2, 29, 32
32, 340, -636, ヤマザワ, 2, 31, 33
33, 220, -391, 直江町, 3, 2, 20, 32
34, 575, -807, 琴平神社, 2, 28, 35
35, 621, -853, 南米沢駅, 1, 34
交差番号点、x座標、Y座標、交差点名、隣接する交差点の数、隣接する交差点番号)を読み取り以上のようなものを解くのですが
以下のような文字列が出てしまいます。またそもそも答えを出すことができません。
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o):(.text+0xa9): undefined reference to `_WinMain@16'
collect2: ld はステータス 1 で終了しました
#include <stdio.h>
#include <math.h>
#define place 35
typedef struct
{
int banngou;
double x,y;
char name[22];
int kosuu;
int tonari[9];
}mapdate;
mapdate yonezawa[35];
void read_data(char *filename)
{
{
FILE *fp;
int i,j;
fp = fopen(filename, "r");
if (fp == NULL)
{
printf("ファイル作成失敗 \n");
}
for(i=0;i<35;i++)
{
fscanf(fp, "%d,%lf,%lf,%[^,],%d,\n",&yonezawa[i].banngou,&yonezawa[i].x,&yonezawa[i].y,yonezawa[i].name,yonezawa[i].kosuu,yonezawa[i].tonari);
for(j=0;j<yonezawa[i].kosuu;j++)
{
fscanf(fp,"%d",yonezawa[i].tonari[j]);
}
fclose(fp);
}
void main()
{
int i,j,k,banngou,banngou2;
int f=0;
read_data("map.dat");
printf("交差点の番号を入れて下さい.\n");
scanf("%d",&banngou2);
for(i=0;i<35;i++)
{
printf("%d,%lf,%lf,%s,%d,%d \n",yonezawa[i].banngou,yonezawa[i].x,yonezawa[i].y,yonezawa[i].name,yonezawa[i].kosuu,yonezawa[i].tonari);
f=1;
}
if(f==0) printf("交差点が見つかりません \n");
{
for(j=0;j<yonezawa[i].kosuu;j++)
{
printf("隣接する交差番号は%dです。\n",yonezawa[i].tonari[j]);
printf("隣接する交差名は%sです。\n",yonezawa[yonezawa[i].tonari[j]-1].name);
}
{
float A[2],B[2],d;
printf("打ち込んだ点と隣接間の距離を求める\n");
printf("打ち込んだ点のx座標:"); scanf("%lf",&A[0]);
printf("打ち込んだ点のy座標:"); scanf("%lf",&A[1]);
d=sqrt(pow(A[0]-B[0],2)+pow(A[1]-B[1],2));
printf("打ち込んだ点と隣接間の距離は%f\n",d);
}
}
}
}
}
まずもともとの問題として1.交差点番号を打ち込むと,隣接する交差点名と交差点番号および打ち込んだ交差点からの距離を表示させるプログラムを作成しなさい.という問題で外部からデータファイルmap.dat(1, 76.0, -233.0, 西米沢駅, 1, 2
2, 204.0, -249.0, 西部小学校, 5, 1, 3, 4, 17, 33
3, 177.0, -85.0, ニトリ, 3, 2, 4, 6
4, 281.0, -185.0, 木場町, 3, 2, 3, 5
5, 458.0, -158.0, 法泉寺, 3, 4, 6, 18
6, 439.0, -55.0, 徳町, 3, 3, 5, 7
7, 546.0, -64.0, 中央高校, 3, 6, 8, 9
8, 563.0, -16.0, 総合公園, 1, 7
9, 789.0, -110.0, 市役所, 3, 7, 10, 16
10, 1064.0, -174.0, 花沢郵便局, 2, 9, 11
11, 1129, -143, 花沢, 2, 10, 12
12, 1249, -457, ルートインホテル, 2, 11, 13
13, 1088, -463, 米沢駅, 3, 12, 14, 22
14, 836, -419, 大町, 3, 13, 15, 22
15, 727, -396, 大沼デパート, 4, 14, 16, 19, 21
16, 743, -317, 立町, 3, 9, 15, 17
17, 657, -294, 第一ホテル, 4, 2, 16, 18, 19
18, 675, -192, 西宮戎神社, 2, 5, 17
19, 640, -374, 興譲小学校, 3, 15, 17, 20
20, 628, -428, 門東町, 4, 19, 21, 26, 33
21, 715, -453, 花膳, 4, 15, 20, 22, 24
22, 860, -475, 相生町, 4, 13, 14, 21, 23
23, 922, -717, ホテル平成, 2, 22, 24
24, 670, -651, 南部小学校, 3, 21, 23, 25
25, 598, -643, エネオス, 3, 24, 26, 28
26, 613, -499, ファミリーマート, 3, 20, 25, 27
27, 540, -477, 上杉神社, 1, 26
28, 593, -712, 城南, 3, 25, 29, 34
29, 536, -701, 山大正門, 3, 28, 30, 31
30, 530, -742, 山形大学, 1, 29
31, 413, -672, 第二中学校, 2, 29, 32
32, 340, -636, ヤマザワ, 2, 31, 33
33, 220, -391, 直江町, 3, 2, 20, 32
34, 575, -807, 琴平神社, 2, 28, 35
35, 621, -853, 南米沢駅, 1, 34
交差番号点、x座標、Y座標、交差点名、隣接する交差点の数、隣接する交差点番号)を読み取り以上のようなものを解くのですが
以下のような文字列が出てしまいます。またそもそも答えを出すことができません。
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o):(.text+0xa9): undefined reference to `_WinMain@16'
collect2: ld はステータス 1 で終了しました