 #include <stdio.h>
 #define N 3
  
 void input(double *v){/***ベクトルに値を代入する関数***/
   int i;
   for(i=0;i<N;i++){
     printf("ベクトルを入力してください"); 
     scanf("%lf",&v[i]);
   }
 }
  
 void print(double *v){/***ベクトルを表示する関数***/
   int i;
   printf("(");
   for(i=0;i<N;i++)
     printf("%.1f ",v[i]);
   printf(")\n");
 }
  
 double inner_product(double *a, double *b){/***内積を求める関数***/
   int i;
   double p=0.0;
   for(i=0;i<N;i++)
     p+=a[i]*b[i];
   return(p);
 }
  
 void exterior_product(double *c, double *a, double *b){/***外積を求める関数***/
   c[0]=a[1]*b[2]-a[2]*b[1];
   c[1]=a[2]*b[0]-a[0]*b[2];
   c[2]=a[0]*b[1]-a[1]*b[0];
 }
  
 int main(void){ 
   double a[N],b[N],c[N];
   
   input(a);/***ベクトルaを入力***/
   input(b);/***ベクトルbを入力***/
   
   printf("a=");
   print(a);/***ベクトルaを表示***/
   
   printf("b=");
   print(b);/***ベクトルbを表示***/
   
   printf("内積: %f\n",inner_product(a,b));/***内積を求めて表示***/
  
   printf("外積:");  
   exterior_product(c,a,b);/***外積を求める***/
   print(c);/***配列dを表示***/
   
   return(0);
 }
