- 624 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 09:07:17 ]
- >>614 B
#include <stdio.h> #include <math.h> main(int argc,char *argv[]) { int point,i=0; double x,y,old_x,old_y,distance=0.0; char line[1000]; FILE *fp; if(argc!=2){ printf("Usage: %s <filename>\n",argv[0]); exit(1); } if((fp=fopen(argv[1],"r"))==NULL){ printf("file can't open.\n"); exit(1); } while(fgets(line,999,fp)!=NULL){ if(sscanf(line,"%lf %lf",&x,&y)==1){ point=x;//データが1つしかない=点の数なのでpointに代入 continue; } if(i==0){ old_x=x; old_y=y; }//初回は以前の点がないので同じにする distance+=sqrt(((x-old_x)*(x-old_x))+((y-old_y)*(y-old_y)));//2点間の距離の公式 old_x=x; old_y=y;//前回座標の保存 i++; } printf("point = %d distance = %lf\n",point,distance); } 前回の点から今回の点まで移動した距離の合算でいいんだよね?
|

|