函数模块相互之间如何调用

我想求sin⁡(x)=x-x^3/3!+x^5/5!-x^7/7!+⋯前20项的值
我自己写的代码是

#include<stdio.h>
int power(int x, int m)
{
    int t;
    t=x^m;
    return t;
}
int fac(int m)
{
    int i,t=1,s=0;
    for(i=1;i<=m;i++)
        t*=i;
    s+=t;
    return s;
}
float sn(int x, int sn)
{
    float t;
    t=power(x,m)/fac(m);
    return t;
}
int sin()
{
        m=1,3,5,7,9,11,13,15,17,19;
    int sum;
    sum=sn(x,sn);
    return sum;
}
int main(){
    int x,n;
    printf("输入x、n:\n");
    scanf("%d %d",&x,&n);
    sin();
    printf("%d",sum);
}

但问题是在sn(int x, int sn)里power(x,m)/fac(m)又没了定义是怎么回事,要怎么解决呢。


#include <stdio.h>
#include <math.h>
/* 利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-...
    计算sin(x)的值。要求最后一项的绝对值小于10^(-5)*/
void  main(){
  double sum,item;
  int i=0,count=0;
  float x;
  printf("Input x: ");
  scanf("%f",&x);
  sum=x;
  item=x;//初始化赋值 item存放每一项的值
  do{
    i++;
    item = -item*x*x/((2*i)*(2*i+1));//第一項为-x^3/3! item=-x*x*x/(2*3) 
    //第二项为x^5/5! 直接对第一項取负,-item*x*x/(4*5),后面以此类推 
    sum+=item;
    count++;
  }while(count < 20);
  printf("sin(%f)=%6.6lf,count=%d\n",x,sum,count);
 
}