⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zffract.h

📁 [[ Complex Matrices : Language c]]
💻 H
字号:
/* xbfract.h                    free ware                  xhunga@tiscali.fr  */


/* ------------------------------------- FUNCTION --------------------------  */
/* Do    :                                                                    */
/*                                                                            */
/* -------------------------------------------------------------------------- */
double modf_F(
fraction f
)
{
 double x;

 modf((f.n/f.d),&x);

 return(x);
}

/* ------------------------------------- FUNCTION --------------------------  */
/* Do    :                                                                    */
/*                                                                            */
/* -------------------------------------------------------------------------- */
fraction mini_F(
fraction f
)
{
   double t;
 fraction ft;

/*
  if( ((f.n) > 1000000000000000) && ( ((f.n)-(f.d)) < 2 ))
       {f.n = 1;
        f.d = 1;}
*/
  if(!f.n){f.d = 1;}

  if(f.n == f.d)
    {f.n = 1;
     f.d = 1;}

 ft.n = fabs(f.n);
 ft.d = fabs(f.d);

 while (ft.n>0)
 {
  if(ft.n<ft.d)
  {
     t=ft.n;
   ft.n=ft.d;
   ft.d=t;
   }
 ft.n= ft.n-ft.d*modf_F(ft);
 }

 f.n/=ft.d;
 f.d/=ft.d;

 if(f.d < 0 )
{
 f.n = -1 * (f.n);
 f.d = -1 * (f.d);
}

if(!f.n){f.d = 1;}

 return(f);
}

/* ------------------------------ FUNCTION --------------------------- addf() */
/* -------------------------------------------------------------------------- */
fraction add_F(
fraction f1,
fraction f2)
{
         f1 = mini_F(f1);
         f2 = mini_F(f2);

   f1.n = (f1.n)*(f2.d) + (f2.n)*(f1.d);
   f1.d = (f1.d)*(f2.d);

  return(mini_F(f1));
}

/* ------------------------------ FUNCTION --------------------------- sub_F() */
/* -------------------------------------------------------------------------- */
fraction sub_F(
fraction f1,
fraction f2)
{
         f1 = mini_F(f1);
         f2 = mini_F(f2);

   f1.n = (f1.n)*(f2.d) - (f2.n)*(f1.d);
   f1.d = (f1.d)*(f2.d);

  return(mini_F(f1));
}

/* ------------------------------ FUNCTION --------------------------- mul_F() */
/* -------------------------------------------------------------------------- */
fraction mul_F(
fraction f1,
fraction f2)
{
         f1 = mini_F(f1);
         f2 = mini_F(f2);

   f1.n = (f1.n)*(f2.n);
   f1.d = (f1.d)*(f2.d);

  return(mini_F(f1));
}

/* ------------------------------ FUNCTION --------------------------- div_F() */
/* -------------------------------------------------------------------------- */
fraction div_F(
fraction f1,
fraction f2)
{

  if (!f2.n)
    {
     printf("\n div_F() error - 0 no inverse");
     printf("\n Press return to continue");
     getchar();
     exit(1);
    }
         f1 = mini_F(f1);
         f2 = mini_F(f2);

   f1.n = (f1.n)*(f2.d);
   f1.d = (f1.d)*(f2.n);

  return(mini_F(f1));
}


/* ------------------------------ FUNCTION --------------------------- inv_F() */
/* -------------------------------------------------------------------------- */
fraction inv_F(
fraction f)
{
 double T;

  f = mini_F(f);

  if (!f.n)
    {
     printf("\n inv_F() error - 0 no inverse");
     printf("\n Press return to continue");
     getchar();
     exit(1);
    }

      T = f.n;
    f.n = f.d;
    f.d = T;

  return(f);
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -