C语言第三次作业.docx
- 文档编号:10762296
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:23
- 大小:157.64KB
C语言第三次作业.docx
《C语言第三次作业.docx》由会员分享,可在线阅读,更多相关《C语言第三次作业.docx(23页珍藏版)》请在冰豆网上搜索。
C语言第三次作业
第三次作业:
程序控制语句(顺叙、选择、循环)
注:
建议同学们在深入理解顺序、选择、循环三种控制语句的基础上再做本次作业,过程可能会更顺利,效果可能会更好一些。
1.三角形的面积和周长
对于一个三角形,设它的三条边分别为a、b、c,三角形的周长、面积计算公式分别为:
lPerimeter=a+b+c
laere*area=s(s-a)(s-b)(s-c),其中:
s=(a+b+c)/2
要求编程实现以下功能:
输入一个正整数repeat(0 输入三条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter(保 留2位小数);否则,输出“Thesesidesdonotcorrespondtoavalidtriangle”。 程序代码: #include #include voidmain() { inta,b,c,s,repeat,p,t,q,u,i; floatperimeter,area; i=1; scanf("%d",&repeat); do { scanf("%d,%d,%d",&a,&b,&c); t=(a>b)? a: b; p=(a a: b; q=(t>c)? t: c; u=(t t: c; perimeter=a+b+c; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); if(p+u>q&&q-p printf("%.2f,%.2f\n",perimeter,area); else printf("Thesesidesdonotcorrespondtoavalidtriangle\n"); i=i+1; } while(i<=repeat); } 2.竖式打印 键盘输入两个两位正整数a,b(11<=a,b<=99,且a和b都不包含数字’0’),在屏幕上输出a与b相乘的竖式。 注意尽量按照样例的格式进行输出。 样例: 输入 输出 2512 25 *12 ------ 50 25 ------ 300 程序代码: #include #include voidmain() { inta,b,m,n,k; scanf("%d%d",&a,&b); m=(b%10)*a; n=floor(b/10)*a; k=a*b; printf("%6d\n",a); printf("*"); printf("%5d\n",b); printf("------\n"); printf("%6d\n%5d\n",m,n); printf("------\n"); printf("%6d\n",k); } 3.铅笔工厂 在铅笔工厂里,一支铅笔要经过下列工序: 首先在一台机器中喷上彩漆,随后在另一台机器中喷上清漆。 遗憾的是这两台机器都有一些毛病。 上彩漆的机器在每处理n支铅笔后就“罢工”一次(也就是下一支铅笔将不被喷上彩漆),而上清漆机器在处理m支铅笔后“罢工”一次。 于是这所工厂出产四种铅笔,一种是成品铅笔,一种是只上过彩漆的铅笔,一种是只上过清漆的铅笔,最后一种是没有上过任何漆的铅笔。 请编写程序,对给定的n,m和k(被处理的铅笔总数),计算四种铅笔的数量。 例如,n=3,m=5以及k=17,那么铅笔的处理情况如下图: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 彩漆 √ √ √ × √ √ √ × √ √ √ × √ √ √ × √ 清漆 √ √ √ √ √ × √ √ √ √ √ × √ √ √ √ √ 17支铅笔中,有12支是成品。 而第12支是什么漆也没上的;第6支只上了彩漆,还有3支只上了清漆。 输入: 仅一行,三个整数n,m和k。 0 输出: 在一行中依次输出下列4个数: a)铅笔成品数。 b)没被上漆的铅笔数。 c)上过彩漆而没上清漆的铅笔数。 d)上过清漆而没上彩漆的铅笔数。 样例1 输入 输出 3517 12113 样例2 输入 输出 999999999999999999999 99999900099900 程序代码: #include #include voidmain() { intm,n,k,a,b,c,d,p,q,i; scanf("%d,%d,%d",&n,&m,&k); i=n-1; do { i=i+1; p=i%(n+1); q=i%(m+1); } while(p! =0||q! =0); b=floor(k/i); c=floor(k/(m+1))-b; d=floor(k/(n+1))-b; a=k-(b+c+d); printf("%d%d%d%d\n",a,b,c,d); } 4.计算工资 某工厂规定一个工人工作时间每个月160小时,每小时工资为5元,如果加班的话,每小时加班费为4元;但是单位同时又规定,一个工人每月加班时间平均计算下来最多不能超过6个小时/天,多出的加班时间不给加班费。 (本题暂规定即使是周末、节假日加班也不能超过6小时;2月份假设全按照28天计算)。 请编程完成如下的功能。 输入一个正整数repeat(0 由键盘输入月份数,某个工人的当月工作总时间,计算并打印此工人该月的工资。 程序代码: #include voidmain() { inttime,worktime=160,overtime,month,days,pay,repeat,i=1; scanf("%d",&repeat); do { scanf("%d,%d",&month,&time); overtime=time-worktime; if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)days=31; elseif(month==4||month==6||month==9||month==11)days=30; elseif(month==2)days=28; { if(overtime<=6*days) pay=worktime*5+overtime*4; else pay=worktime*5+6*days*4; } printf("%d\n",pay); i=i+1; } while(i<=repeat); }错误原因没有考虑到工作时间小于160小时的情况 5.个人所得税 按照国家关于《中华人民共和国个人所得税法实施条例》的规定,我国公民个人所得税税率(工资、薪金所得适用)如下表: 个人所得税税率表一(工资、薪金所得适用) 级数 全月应纳税所得额 税率(%) 1 不超过1500元的 3 2 超过1500元至4500元的部分 10 3 超过4500元至9000元的部分 20 4 超过9000元至35000元的部分 25 5 超过35000元至55000元的部分 30 6 超过55000元至80000元的部分 35 7 超过80000元的部分 45 (注: 本表所称全月应纳税所得额是指以每月收入额减除费用三千五百元后的余额,即通常所说的个税起征点。 ) 要求编写以下的程序: 输入一个正整数repeat(0 输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。 程序代码: #include voidmain() { intsalary,a,repeat,i; floattax; i=1; scanf("%d",&repeat); do { scanf("%d",&salary); a=salary-3500; if(a<=0) tax=0; elseif(0 tax=a*0.03; elseif(1500 tax=(a-1500)*0.1+1500*0.03; elseif(4500 tax=(a-4500)*0.2+3000*0.1+1500*0.03; elseif(9000 tax=(a-9000)*0.25+4500*0.2+3000*0.1+1500*0.03; elseif(35000 tax=(a-35000)*0.3+26000*0.25+4500*0.2+3000*0.1+1500*0.03; elseif(55000 tax=(a-55000)*0.35+20000*0.3+26000*0.25+4500*0.2+3000*0.1+1500*0.03;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第三次 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)