C语言编程答案(127页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言编程答案(127页).doc》由会员分享,可在线阅读,更多相关《C语言编程答案(127页).doc(134页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-1 温度转换(06秋)背景: 经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:有些使用华氏温度标准(F),有些使用摄氏温度(C)。现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。温度转换的公式为:F(C95)32 ;C(F32)59 ;式中F-华氏温度,C-摄氏温度。输入:第一个数据(1 或 2 )确定转换的类型:华氏转摄氏(1);摄氏转华氏(2); 第二个数据是相应需要转换的温度值。 输出:相应的转换后的温度值(保留小数点后 2 位)。程序实例1:#inc
2、lude void main() int a; float x,y; scanf(%d%f,&a,&x); if ( a=1 ) y=(x-32)*5.0/9.0; printf(The Centigrade is %.2fn,y); else if(a=2) y=(x*9.0/5.0)+32; printf(The Fahrenheit is %.2fn,y); 结果:输入:1100输出:TheCentigradeis37.78输入:2-6.67输出:TheFahrenheitis19.99程序实例2:#include void main() float C;int a; scanf(%d
3、%f,&a,&C); switch (a) case 1: printf(The Centigrade is %.2fn,(C-32)*5/9);break; case 2: printf(The Fahrenheit is %.2fn,(C*9/5)+32);break; default: printf(errorn); 结果:输入:10输出:TheCentigradeis-17.78输入:288输出:TheFahrenheitis190.409 分数的四则运算在小学时我们就学习了分数的四则运算,即对两个分数进行加、减、乘、除等运算,现在我们尝试下用C语言来实现。输入:分数1 操作符 分数2
4、输出:计算结果要求:计算结果使用分数表示,并且为最简化。例如结果为2/6,则被简化为1/3程序实例1:#include int main() int a,b,c,d,e,f,x,y,z; char g; scanf(%d/%d %c %d/%d,&a,&b,&g,&c,&d); if(g=+) e=a*d+b*c;f=b*d; if(g=-) e=a*d-b*c;f=b*d; if(g=*) e=a*c;f=b*d; if(g=/) e=a*d;f=b*c; x=e; y=f; z=x%y; if(z!=0) while(z!=0) x=y;y=z;z=x%y; e=e/y; f=f/y; i
5、f(f0) printf(%d/%d %c %d/%d = %d/%d,a,b,g,c,d,e,f); if(f0) printf(%d/%d %c %d/%d = %d/%d,a,b,g,c,d,-e,-f); else printf(%d/%d %c %d/%d = %d,a,b,g,c,d,e/f); printf(n); return 0; 结果:输入:1/3+1/2输出:1/3+1/2=5/6程序实例2:#includemath.h #include void main() int a,b,c,d,m,n,x,y,v;char z; scanf(%d/%d %c %d/%d,&a,&
6、b,&z,&c,&d); switch (z) case(+):m=a*d+b*c;n=b*d;break; case(-):m=a*d-b*c;n=b*d;break; case(*):m=a*c;n=b*d;break; case(/):m=a*d;n=b*c;break; x=fabs(m);y=fabs(n);v=x%y; while(v!=0) x=y;y=v;v=x%y; if(m/y=0) printf(%d/%d %c %d/%d = 0n,a,b,z,c,d); else if(n/y=1) printf(%d/%d %c %d/%d = %dn,a,b,z,c,d,m/y)
7、; else printf(%d/%d %c %d/%d = %d/%dn,a,b,z,c,d,m/y,n/y); 结果: 输入:1/2+2/6输出:1/2+2/6=5/611 百马百担有100匹马,驮100担货,其中大马驮3担,中马驮2担,两匹小马驮1担输入:无输出:大、中、小马的个数,用逗号分隔。例如:2,30,68说明:大、中、小马都必须有,结果中要列出所有的组合可能每个结果占一行 因为有多个结果,结果的排序按照大马的个数从少到多程序实例1:#include void main() int bigHorse,middleHorse,smallHorse; bigHorse=0; whil
8、e(bigHorse=33) middleHorse=1; while(middleHorse50) smallHorse=100-bigHorse-middleHorse; if(3*bigHorse+2*middleHorse+smallHorse/2=100&smallHorse%2=0) printf(%d,%d,%dn,bigHorse,middleHorse,smallHorse); middleHorse+; bigHorse+; 结果: 输入:无输出:2,30,685,25,708,20,7211,15,7414,10,7617,5,78程序实例2#includevoid ma
9、in() int a,b,c; for(a=0;a=33;a+) for(b=1;b50;b+) c=100-a-b; if(3*a+2*b+c/2=100&c%2=0) printf(%d,%d,%dn,a,b,c); 结果:输入:无输出:2,30,685,25,708,20,7211,15,7414,10,7617,5,7816 邮票组合(选作)背景:我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可相同,可不同。输入:四种邮票的面值。输出:用这四种面值组成
10、的邮资最大的从1开始的一个连续的区间。说明:如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。名词解释: 邮资:就是你寄东西需要花多少钱。 邮票面额:是由国家发行的具有固定价格的花纸片,被称为邮票。如果你寄东西,邮局称了重量,告诉你要240分。这样你就要贴邮票了。如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:采用3张80分的可以凑出240分;或者24张10分的凑起来240分也可以。显然不同邮票的组合都可以得到同样一种邮资。程序实例1:/*This program is to find the
11、 max set*/ #include main() int a,b,c,d,i,j,k,l; static int s1000; scanf(%d%d%d%d,&a,&b,&c,&d); for (i=0;i=5;i+) for (j=0;i+j=5;j+) for (k=0;k+i+j=5;k+) for (l=0;k+i+j+l=5;l+) if (a*i+b*j+c*k+d*l) sa*i+b*j+c*k+d*l+; for (i=1;i=1000;i+) if(!si) break; printf(The max is %d.n,-i); return 0; 结果:输入:141221
12、输出:Themaxis71.程序实例2:#include stdio.h int total,max; int value5,num1000 = 0 ; void findmax(int n,int p) int i; if (p 5 ) for (i = n;i = 4;i +) total += valuei; if (max total) max = total; numtotal = 1; findmax(i,p + 1); total -= valuei; int main() int i; for (i = 1;i = 4;i +) scanf(%d,&valuei); total
13、 = 0;max = 0; findmax(1,0); for (i = 1;i = max;i +) if (!numi) break; printf(The max is %d.n,i - 1); return 0; 结果: 输入:1 3 7 12输出:The max is 46.18 等值数列段(06秋)如果一个数列中的某一段(至少有两个元素)的各元素值均相同,则称之为等值数列段。等值数列段中元素的个数叫做等值数列段的长度。输入:由N个元素组成的整数数列A(其中N=50)输出:A中长度最大的所有等值数列段的始末位置,如果没有等值数列段,则输出No equal number list. 说
14、明: 始末位置是指数组下标,即0表示第一个元素。 如果有多个同等长度的等值数列,只输出第一个等值数列的起始位置。 当在一个LIST中出现两个等长的连续串的时候,我们的答案应该是第一个等长串。NN开始,输入j+记数器加1i+ 记数器加1保存长度和位置没遍历完 in ?如果相临字符相等是否也与下一字符相等输出,结束是否为最长YNYNYY程序实例1:#includestdio.hmain()int i=0,j=0,k,n,max=0,maxnum=0,a50;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);/*输入*/for(i=j;in;i+)/*循环遍历*/j=
15、i+1;if(ai=aj)/*如果相临的相等,i不变,继续看相等字符有多长*/while(ai=a+j);/*循环直到不相等为止*/if(maxnum0)/*输出*/printf(The longest equal number list is from %d to %d.n,max,maxnum+max-1);elseprintf(No equal number list.n);结果:输入:512345输出:Noequalnumberlist.程序实例2:#includestdio.h void main() int a,x50,i,j,m=0,n=0; scanf(%d,&a); for(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 答案 127
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内