栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【C语言函数循环结构题目】利用公式求sinx

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言函数循环结构题目】利用公式求sinx

【代码】

#include
#include
double sin(double x)
{
	int flag = 1,i,n=1,k;
	double sum = 0,  item ;
	do {

		double fz = 1, fm = 1;
		for (i = 1; i <= 2 * n - 1; i++)
		{
			fz *= x;
			fm *= i;
		}
		item = fz / fm;
		sum += flag * item;
		flag = (-1) * flag;
		n++;
	} while (fabs(item) >=1e-6);
	return sum;
}
int main()
{
	double x;
	printf("请输入负无穷到正无穷之间的一个数:n");
	scanf_s("%lf", &x);
	printf("sin(x)=%lf", sin(x));
	return 0;
}

【解释】
这道题思路很清楚,就是定义一个函数去求,由于要保证最后一项精度在10^-6,所以我们用do while循环来做,然后在循环里面是我们主要的结构,里面有两个核心内容,一个是求x的2n-1次方,一个是求2n-1的阶层,可以放到一个for循环里面求,在for循环后面把求得值整合起来加到sum,条件满足时函数返回sum值。

值得注意的是fz和fm两个变量要放在do循环里,for循环前面进行初始化,这样每次do循环依次,fz与fm回归初始值,这样才不会出现累乘了多余值情况。不要把fz和fm这样需要循环初始化的值放在循环外面。一定要理清楚逻辑。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号