c
1#include<stdio.h> 2 3int main(void) 4{ 5 int xa,ya,xb,yb,xc,yc; 6 printf("xa:"); 7 scanf("%d",&xa); 8 printf("ya:"); 9 scanf("%d",&ya); 10 printf("xb:"); 11 scanf("%d",&xb); 12 printf("yb:"); 13 scanf("%d",&yb); 14 printf("xc:"); 15 scanf("%d",&xc); 16 printf("yc:"); 17 scanf("%d",&yc); 18 19 double λ=(double)((xb-xa)*(yc-ya)-(yb-ya)*(xc-xa))/2; 20 21 printf("%f",λ); 22 23 return 0; 24} 25
c
1#include<stdio.h> 2 3int main(void) 4{ 5 int i,n; 6 double x[100],y[100]; 7 8 printf("n:"); 9 scanf("%d",&n); 10 11 for ( i = 2; i < n; i++) 12 { 13 char cmd_str[1024]; 14 sprintf( 15 cmd_str, 16 "echo %f %f %f %f %f %f | ./Triangle", 17 x[1], y[1], x[i], y[i], x[i+1], y[i+1] 18 ); 19 FILE* popen(cmd_str, "r"); 20 21 } 22 23 return 0; 24} 25
上のプログラムでは入力した3点からなる三角形の符号付面積を求めていて、それを用いて(popen関数を使って)
下のプログラムで多角形(頂点数n)の符号付面積を求めたいです。
下のプログラムの手順としては、
0、多角形の頂点数nを入力。
1、char cmd_str[1024];
sprintf(
cmd_str,
"echo %f %f %f %f %f %f | ./Triangle",
x1, y1, xi, yi, xi+1, yi+1
);
FILE* popen(cmd_str, "r");
のようにpopen関数を使って上のプログラム(Triangle.c)を実行。
2、fscanf 関数を用いて,Triangleのプログラムが計算した三角形の符号付き面積の値を読み込む
3、pclose 関数を用いてパイプを閉じる.
4、1〜3をfor文を用いてn-2回繰り返し頂点数(n)の符号付き面積を求める。
下の手順0、1までは書き4のfor文もかいたのですが、2、3のやり方がわかりません。
どのようにすれば良いですか?
回答2件
あなたの回答
tips
プレビュー