




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东理工大学 C语言实验 【实验一】1已知地球的平均半径为6371千米,假设在地球的同一纬度上,有两个处于不同经度的城市A、B,编程序求出这两个城市之间的地面距离。输入数据样例:例如,欲求北纬30度上东经10度到东经50度的距离,输入格式应为:30 10 50#include #include #define PI 3.1415926/定义常量main()float a,b,c,s,m;scanf(%f%f%f,&a,&b,&c);/输入纬度和两个经度,规定东经为正,西经为负m=fabs(b-c);if(m180)/经度差小于180s=2*6371*asin(cos(PI/180*a)*sin(PI/360*m);/推出数学计算公式转换为c语言elses=2*6371*asin(cos(PI/180*a)*sin(PI/360*(360-m);printf(距离为%fn,s);2地球的平均半径为6371千米,已知地球上两个城市A、B的经度和纬度,编程序求出这两个城市之间的地面距离。#include #include #define PI 3.1415926/定义常量main()float a1,a2,b1,b2,m,s;scanf(%f%f%f%f,&a1,&a2,&b1,&b2);/输入纬度和两个经度,规定东经为正,西经为负m=fabs(a1-b1);if(m180)/经度差小于180s=6371*2*asin(sqrt(0.5*(1-sin(PI/180*a2)*sin(PI/180*b2)-cos(PI/180*a2)*cos(PI/180*b2)* cos(PI/180*m);/推出数学计算公式转换为c语言else/经度差大于180s=6371*2*asin(sqrt(0.5*(1-sin(PI/180*a2)*sin(PI/180*b2)-cos(PI/180*a2)*cos(PI/180*b2)* cos(PI/180*(360-m);/推出数学计算公式转换为c语言printf(%fn,s);/输出结果【实验二】1.编程序实现:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。#include main()int y,n,m,w,p,s,u; printf(请输入一个年份:n);scanf(%d,&y); n=y%400*97;u=y-y%400*400; m=u/4-u/100;p=m+n;s=366*p+365*(y-p-1);w=s%7;switch (w) case 1:w=1;break; case 2:w=2;break; case 3:w=3;break; case 4:w=4;break; case 5:w=5;break; case 6:w=6;break; case 0:w=7;break;printf(总天数=%dn,该年的1月1日为星期%dn,s,w);2.输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。 #include void main () int y,m,d,c,s,w; printf(请输入8位年月日,以空格隔开:); scanf(%d%d%d,&y,&m,&d); if (m=1) c=d; else if (m=2) c=31+d; else if (m=3) c=31+28+d; else if (m=4) c=31+28+31+d; else if (m=5) c=31+28+31+30+d; else if (m=6) c=31+28+31+30+31+d; else if (m=7) c=31+28+31+30+31+30+d; else if (m=8) c=31+28+31+30+31+30+31+d; else if (m=9) c=31+28+31+30+31+30+31+31+d; else if (m=10) c=31+28+31+30+31+30+31+31+30+d; else if (m=11) c=31+28+31+30+31+30+31+31+30+31+d; else if (m=12) c=31+28+31+30+31+30+31+31+30+31+30+d; if (m2) if (y%100=0) if (y%400=0) c=c+1; else if (y%4=0) c=c+1; s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c; w=s%7; switch (w) case 0: printf(星期日);break; case 1: printf(星期一);break; case 2: printf(星期二);break; case 3: printf(星期三);break; case 4: printf(星期四);break; case 5: printf(星期五);break; case 6: printf(星期六);break; printf(n); 【实验三】1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室 。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。#include stdio.h#include math.h void main() int w=600000,n;float q=0.5/100,c,m,s=0;m=w/120;for(n=1;n=120;n+)w=w-m;c=w*q;s=s+c;printf(第%d个月还本金%.2f元,利息%.2f元n,n,m,c);printf(总的利息为%.2fn,s);2.若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。#include #include main()float i,m,n,w,p=600000,q=120,sum=0; w=p*0.005*pow(1.005,q)/(pow(1.005,q)-1); for(i=1;i=q;i+) m=p*0.005*pow(1.005,i-1)/(pow(1.005,q)-1); n=w-m; printf(第%3.0f月的本金为%7.2f元,利息为%7.2f元n,i,m,n);sum=sum+n; printf(总利息为%f元n,sum); printf(本息为%f元,w); 【实验四】1. 编程序实现如下功能:输入任意一个年份和月份,按以下格式输出该月份的公历日历。要求由程序计算出来该月份的1日是星期几,并用循环控制打印。打印样例如下: 2012年日历9月-日 一 二 三 四 五 六 12 3 4 5 6 7 89 10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 29 30 - #include stdio.hmain()int day,month,year,x,y,m12=31,28,31,30,31,30,31,31,30,31,30,31; printf(请输入年,月);scanf(%d,%d,&year,&month);if(year%4=0&year%100!=0|year%400=0) /*是否为闰年*/m2=29;day=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400; /*从公元元年到year年共多少天了*/for(x=1;xmonth;x+) day=day+mx; day=day+1; printf(tt%d年%d月,year,month); printf(n-n);printf(n日t一t二t三t四t五t六tn); for(x=1;x=day%7;x+) printf(t); for(x-,y=1;y=mmonth;y+,x+) if(x%7=0) printf(n); printf(%dt,y); printf(n-n);2.编程序实现如下功能:输入任意一个年份,按以下格式输出该年份全年的公历日历。要求由程序计算出来每个月份的1日是星期几,并用循环控制打印。#include main()int a67,i,j,y,m,n,d,w,p,days;printf(*_*)请输入年:);scanf(%d,&y); /*输入某一年*/m=0;while(m=11) /*用循环累加月份*/m+; /*月份累加*/p=0;n=0;for(i=0;i(y-1);i+) if(i%4=0)&(i%100!=0)|(i%400=0)p=p+1; if(y%4=0)&(y%100!=0)|(y%400=0) if(m=1) d=(y-1)*365+p+n; if(d%7=0)w=7;else w=d%7;if(m=2) d=(y-1)*365+p+n+31;if(d%7=0) w=7;elsew=d%7;if(m=3) d=(y-1)*365+p+n+31+29;if(d%7=0)w=7;elsew=d%7; if(m=4) d=(y-1)*365+p+n+31+29+31;if(d%7=0)w=7;elsew=d%7;if(m=5) d=(y-1)*365+p+n+31+29+31+30;if(d%7=0)w=7;elsew=d%7;if(m=6) d=(y-1)*365+p+n+31+29+31+30+31; if(d%7=0)w=7;elsew=d%7;if(m=7) d=(y-1)*365+p+n+31+29+31+30+31+30;if(d%7=0)w=7;elsew=d%7;if(m=8) d=(y-1)*365+p+n+31+29+31+30+31+30+31; if(d%7=0)w=7;elsew=d%7;if(m=9) d=(y-1)*365+p+n+31+29+31+30+31+30+31+31;if(d%7=0)w=7;elsew=d%7; if(m=10) d=(y-1)*365+p+n+31+29+31+30+31+30+31+31+30;if(d%7=0)w=7;elsew=d%7;if(m=11) d=(y-1)*365+p+n+31+29+31+30+31+30+31+31+30+31;if(d%7=0)w=7;else w=d%7;if(m=12) d=(y-1)*365+p+n+31+29+31+30+31+30+31+31+30+31+30; if(d%7=0)w=7;else w=d%7;elseif(m=1) d=(y-1)*365+p+n;if(d%7=0)w=7;elsew=d%7;if(m=2) d=(y-1)*365+p+n+31;if(d%7=0)w=7;elsew=d%7;if(m=3) d=(y-1)*365+p+n+31+28;if(d%7=0)w=7;elsew=d%7;if(m=4) d=(y-1)*365+p+n+31+28+31;if(d%7=0) w=7;elsew=d%7;if(m=5) d=(y-1)*365+p+n+31+28+31+30;if(d%7=0)w=7;elsew=d%7;if(m=6) d=(y-1)*365+p+n+31+28+31+30+31;if(d%7=0)w=7;elsew=d%7;if(m=7) d=(y-1)*365+p+n+31+28+31+30+31+30; if(d%7=0)w=7;elsew=d%7;if(m=8) d=(y-1)*365+p+n+31+28+31+30+31+30+31; if(d%7=0)w=7;elsew=d%7;if(m=9) d=(y-1)*365+p+n+31+28+31+30+31+30+31+31;if(d%7=0)w=7;elsew=d%7;if(m=10) d=(y-1)*365+p+n+31+28+31+30+31+30+31+31+30;if(d%7=0)w=7;elsew=d%7;if(m=11) d=(y-1)*365+p+n+31+28+31+30+31+30+31+31+30+31;if(d%7=0)w=7;elsew=d%7;if(m=12) d=(y-1)*365+p+n+31+28+31+30+31+30+31+31+30+31+30; if(d%7=0)w=7;elsew=d%7; /*把一年时间分为12月并定义每月的天数*/if(m=1|m=3|m=5|m=7|m=8|m=10|m=12)days=31;if(m=4|m=6|m=9|m=11)days=30;if(m=2)if(y%4=0)&(y%100!=0)|(y%400=0)days=29;elsedays=28; printf( 公元%d年%d月,大吉大利,恭喜发财,y,m); /*打印输出的设计*/printf(n);printf(n);printf(n);printf( 星期日 星期一 星期二 星期三 星期四 星期五 星期六);printf(n);for(i=0;i=5;i+) /*利用二维数组计算*/for(j=0;j=6;j+)if(w%7j+1)aij=1+j-w%7+7*i;if(aij=days)printf(%9d,aij);else aij=7-w%7+7*(i-1)+j+1;if(aij=0)printf( );if(aij0)printf(%9d,aij); /*打印出日历*/ printf(n);【实验五】1. 编程实现,输入一个整数的小写金额值(即不考虑角和分),转化为大写金额值并输出。先实现基本功能,如输入1002300,可以输出“壹佰零拾零万贰仟叁佰零拾零元整”。#include#includeint main() char digit3=零,壹,贰,叁,肆,伍,陆,柒,捌,玖; int length = 0;char money20 = 0; int i = 0; gets(money);length = strlen(money); if(length = 1 & money0=0) printf(零元n); else for(i=0;ilength;i+) printf(%s,digitmoneyi -0); switch(length - i) case 16: case 12: case 8: case 4: printf(千); break; case 15: case 11: case 7: case 3: printf(佰); break; case 14: case 10: case 6: case 2: printf(拾); break; case 13: case 5: printf(万); break; case 9: printf(亿); break; case 1: printf(元整n); break; return 0; 2编程实现,输入一个小写金额值,转化为大写金额值输出。要求实现相对完善的功能,如输入1002300.90,应该输出“壹佰万贰仟叁佰元零玖角整”。#include #includemain()int i,n,a100,t;float w;char dx103=零,壹,贰,叁,肆,伍,陆,柒,捌,玖, k133=分,角,元,拾,百,千,万,拾,百,千,亿;printf(请输入一个至多两位小数的数:n);scanf(%f,&w);n=w*100;i=0;while(1) if(n=0)break; ai=n%10; i+;n=n/10; printf(转换为大写金额为:n);while(1) t=a-i;printf(%s,dxt); /*输出大写*/printf(%s,ki); /*输出单位*/if(i=0)printf(n);break; /满足条件跳出循环【实验六】1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室 。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竞业限制补偿协议书(含竞业禁止解除条件)
- 高效能源利用型电动汽车换电站场地租赁与运营管理合同
- 国际教育培训机构外籍教师任聘合同
- 影视制作公司群众演员合同管理与责任约定
- 《甜品店设计》课件
- 《塑料狗小乖》课件
- 财务报销培训总结
- 高围孕产妇培训体系构建
- 《安全生产培训质量控制标准化健康与安全课件》
- 医学诊断证明书规范与管理体系
- 教职工工作调动申请表
- 学校体育学(第三版)ppt全套教学课件
- Alltech 2000型蒸发光散射检测器解决HPLC检测难题
- 休学家长安全承诺书
- JJF 1343-2022 标准物质的定值及均匀性、稳定性评估
- 水文学习题和答案解析
- 高效课堂新授课评价量化表
- 信和SDS2MS使用说明书
- 维修手册震旦218现场
- 画法几何与阴影透视复习题(DOC)
- 螺旋密封的设计及在流体机械中的应用
评论
0/150
提交评论