#include<stdio.h>
#include<string.h>
#include<math.h>
// 输入x,计算上面公式的前10项和。1053: 正弦函数
//输入一个实数x。
//输出一个实数,即数列的前10项和,结果保留3位小数。
int main()
{
//思路:又试了好多次
// int factorial2(int x);//从x开始的阶乘
double factorial2(int x);//int装不下
double n2(int x,double y);//位数,值
double x;double y=0;
scanf("%lf",&x);//double类型是lf
// scanf("%f",&x);经典错误
for(int a=0,i=1,cnt=1;a<10;a++)//进行10次
{ //自增变量最好定义要定义在for的第一个表达式内,不然每次循环都重复定义
// int cnt=1;//奇偶判断位,奇正偶负……
double temp=0;
if(cnt%2!=0)
temp=(double)(n2(i,x)/factorial2(i));
else
temp=-(double)(n2(i,x)/factorial2(i));
y+=temp;
cnt++;
i+=2;
}
printf("%.3f",y);
return 0;
}
double factorial2(int x)//分母
{
double product=1;
for(int i=1;i<=x;i++)
{
product*=i;
}
// printf("%.0lf \n",product);
return product;
}
double n2(int x,double y)//分子
{
double f1=1;
while(x--)
{
f1*=y;
}
//printf("%.0lf\n",f1);
return f1;
}
写这一题,我花了2小时,我真笨
,调试还不会用debug,只能一个个输出看看在哪出问题了