- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
地大c语言课程设计实验报告
C语言课程设计
学号:20131002585
班级:052132班
姓名:某某某
指导老师:刘然
上机地点:北区315机房
1.已知银行整存整取存款不同期限的月息利率(采用复利方式,即利滚利)分别为
0.63% 期限一年
0.66% 期限二年
月息利率= 0.69% 期限三年
0.75% 期限五年
0.85% 期限八年
要求输入存钱的本金和期限(以整数年为单位),求到期时能从银行得到的利息与本金的合计。
提示:可以用嵌套的if-else结构或switch结构实现,核心函数pow(1+月利率,月份)。
请思考年份是四、六、七或八年以上的情况。
#includestdio.h
#includemath.h
double fun(int m,double n,double a)//接受三个参数,m为年份,n为月利率,a为本金
{//返回m年后的本息和
double tem;
tem=pow(n+1,m*12);
return a*tem;
}
int main(void)
{
int n;
double m;
printf(please input the years and the moneys\n);
scanf(%d,%lf,n,m);
while(n0)//n为当前剩余年数,n为零跳出循环
{
if(n=8)//保证最大利息,从最长存储年份开始检测
{
m=fun(8,0.0085,m);//更新本金
n=n-8;//更新年份
}
else if(n=5)
{
m=fun(5,0.0075,m);
n=n-5;
}
else if(n=3)
{
m=fun(3,0.0069,m);
n=n-3;
}
else if(n=2)
{
m=fun(2,0.0066,m);
n=n-2;
}
else if(n=1)
{
m=fun(1,0.0063,m);
n=n-1;
}
}
printf(the Principal and interest is %.3lf\n,m);
return 0;
}
2 .简单计算器。用switch语句编写一个程序计算表达式:data1 op data2的值。其中op为运算符+、-、*、/。
#includestdio.hint main(void){double data1,data2,temp;char op;scanf(%lf%c%lf,data1,op,data2);switch(op){case + :temp= data1+data2;break;case - :temp= data1-data2;break;case * :temp= data1*data2;break;case / :temp= data1/data2;break; }printf(%.3lf%c%.3lf=%.3lf\n,data1,op,data2,temp);return 0;}
3.编写程序,用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根。
提示:
用do-while语句实现。
二分法的计算步骤:
准备 计算f(x)在有根区间[a,b]端点处的值f(a),f(b)
二分 计算f(x)在区间中点(a+b)/2处的值f[(a+b)/2]
判断若f[(a+b)/2]=0,则即是根,计算过程结束。
否则,检测:
若f[(a+b)/2]与f(a)异号,则根位于区间[a,(a+b)/2]内,这时以(a+b)/2代替b;
.若f[(a+b)/2]与f(a)同号,则根位于区间[(a+b)/2,b]内,这时以(a+b)/2代替a;
反复执行步骤2和3,直到区间[a,b]长度缩小到允许的误差范围之内,此时中点(a+b)/2即为所求的根。
#includestdio.h
#define abs(a,b) ((a)-(b))0?((a)-(b)):((b)-(a)) //定义宏函数实现求绝对值
double f(double x)
{return 2*x*x*x-4*x*x+3*x-6 ;} //求f(x)
int main(void)
{
double a,b,m;
a=-10.0;b=10.0;m=(a+b)/2;
while(abs(a,b)0.0001)//当精度满足要求时跳出
{//二分法解方程
if(f(m)==0)break;//求得解时
文档评论(0)