首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言——小学四年级题目解析(一)

作者|我是奔跑的键盘侠

来源|奔跑的键盘侠(ID:runningkeyboardhero)

转载请联系授权(微信ID:ctwott)

搬砖继续……

不过今天的题目有点升级,直接跳到了四年级,其实难度上都属于入门,只不过是题型变了。

年级只是代表题型,难度不做区分。规则简要做个说明吧:

一年级:选择题;

二年级:填空题;

三年级:阅读题;

四年级: 编程题。

这一期也是有点赶进度的味道,上周有小伙伴讨论到这个题目,我感觉有点吃力,毕竟刚学没多久,连变量类型都还没搞清楚,函数什么的就更别说了。

本想等过一两周再说,恰逢背到Taylor这个单词,一时兴起,那就搞起

第1题

说起泰勒,不禁遥想到当年的罗尔、拉格朗日、皮亚诺、麦克劳林等一干人物

总之,没一个好搞的。

关于这道题目,不难,但也不简单,需要足够的耐心,非常多的细节需要去注意。

比如变量类型,-7次方用float已经不够了,需要用double类型变量(其实变量类型的坑不止这个一个,写出来容易调试起来简直要炸了);

再比如正负项的系数变化;各项x的次数以及分母的阶乘;

最后一个多项式作为循环的分界点;

还有累计算了多少项要计数。

弧度这块没来及研究,暂时假设输入值为-pi到pi吧

#include <stdio.h>
#include <math.h>
int main()
{
         int cnt=0;
 double sign=1.0;
 double sum=0.0;
 double monomial;
 double x;
 printf("Please input the value of x:\n");
 scanf("%lf",&x);
 do{
 int index=2*cnt+1;
 long int factor=1;
 int i;
 for(i=1;i<=index;i++){
 factor*=i;
 }
 monomial=sign*pow(x,index)/factor;
 sign=-sign;
 sum+=monomial;
 cnt++;
 }while(fabs(monomial)>1e-7);
 printf("sin(%lf) = %.10lf\n",x,sum);
 printf("There are %d monomials calculated in all.\n",cnt);
 return 0;
}

上面可以作为题目的答案吧。

实际调试代码略有不同,因为用的sublime text,不能使用scanf输入,就直接给x赋值了pi/2,调试时多加了几个printf。截图如下:

欢迎各位大佬批评指点一二。

-END-

下一篇
举报
领券