北理乐学C语言问题详解,新颖

上传人:痛*** 文档编号:91691137 上传时间:2022-05-17 格式:DOC 页数:110 大小:998.50KB
收藏 版权申诉 举报 下载
北理乐学C语言问题详解,新颖_第1页
第1页 / 共110页
北理乐学C语言问题详解,新颖_第2页
第2页 / 共110页
北理乐学C语言问题详解,新颖_第3页
第3页 / 共110页
资源描述:

《北理乐学C语言问题详解,新颖》由会员分享,可在线阅读,更多相关《北理乐学C语言问题详解,新颖(110页珍藏版)》请在装配图网上搜索。

1、word7.入门计算圆柱的侧面积与体积#includevoid main()double a,b;scanf(%lfn%lf,&a,&b);printf(s=%.2lf,v=%.2lfn,2*3.14*a*b,3.14*a*a*b);1.Hello world.输入:无输出:Hello world.程序:#includeint main()printf(Hello world.n);return 0;2.Wele to Beijing.程序:#include int main()printf(Welen);printf(ton);printf(Beijing.n);return 0;3. 求A

2、+B输入:整数1 整数2输出:整数1+整数2=和程序:#includeint main()int a,b;scanf(%d,&a);scanf(%d,&b);printf(%d+%d=%dn,a,b,a+b);return 0;4. 求 x 的 3次方输入:一个整数。输出:该整数的 3 次方值。程序:#includeint main() int x; scanf(%d,&x); printf(%dn,x*x*x); return 0;5. 学习打印你的第一个图形编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。程序:#include int main() printf( *n); p

3、rintf( *n); printf( *n); printf(*n); return 0; 6. 一年级的算术题输入: 承受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444输出:分别输出按照整型数据进展 +、-、*、/、* 之后的运行结果。程序:#includeint main() int a,b; scanf(%d %d,&a,&b); printf(%d+%d=%dn,a,b,a+b); printf(%d-%d=%dn,a,b,a-b); printf(%d*%d=%dn,a,b,a*b); printf(%d/%d=%dn,a,b,a/b); printf(%d%d

4、=%dn,a,b,a%b); return 0;7. 求两个变量的最小值输入:两个整型数输出:两个整型值中的最小值程序: #includeint main() int a,b; scanf(%d%d,&a,&b); printf(min=%dn,ab?a:b); return 0;8. 判断三角形的形状输入:三角型的3条边的长度int型。输出:等边三角形:equilateral triangle等腰三角形:isoceles triangle不构成三角形:non-triangle一般三角形:triangle程序:#includeint main() int a,b,c; scanf(%d%d%d

5、,&a,&b,&c); if(a+bc&a+cb&b+ca) if (a=b&b=c&a=c) printf(equilateral triangle.n); else if(a=b|a=c|b=c) printf(isoceles triangle.n); else printf(triangle.n); else printf(non-triangle.n); return 0;9. 计算圆柱的侧面积与体积输入 :第一行输入圆柱的底面半径 r第二行输入圆柱的高 h 输出:s=,v= 要求1. 所有变量都定义为双精度类型2. 结果准确到小数点后两位程序:#includeint main()

6、double r,h,s,v; scanf(%lf,&r); scanf(%lf,&h); s=2*PI*r*h; v=PI*r*r*h; printf(s=%.2f,v=%.2fn,s,v); return 0;10. 计算时钟的夹角背景:钟面上的时针和分针之间的夹角总是在 0 180之间 ( 包括 0 和180 ) 。举例来说,在十二点的时候两针之间的夹角为 0 ,而在六点的时候夹角为180 ,在三点的时候为90 。此题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。输入: 每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分

7、 ( 在区间 0, 59 上 ) 。 输出: 对应每组测试数据,用常用格式显示时间以与这个时候时针和分针间的最小夹角,准确到小数点后一位。输出格式如下所示。程序:#include#includeint main() int h,m; float d1,d2,d; scanf(%d%d,&h,&m); d1=30*(h+m/60.0); d2=m*360/60.0; d=fabs(d1-d2); if(d180) d=360-d; printf(At %d:%d the angle is %.1f degrees.n,h,m,d); return 0;11. 找出最大素数素数是指一个只能被1和它

8、本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。输入:取值X围输出:该X围内的最大素数程序:#include int main() int n,i,j; scanf(%d,&n); for(i=n;i=1;i-) for(j=2;ji;j+) if(i%j=0) break; if(j=i) printf(The max prime number is %d.n,i); break; 12. 求最后3位数值输入:a 和 n 的值。假设 a=150 。 输出:求 a 的 n 次方的最后 3 位数。程序:#includeint main()long int s=1;int a

9、,n,i=1,t=1;scanf(%d%d,&a,&n);if(n=0)printf(The last 3 numbers is 1.n);elsefor(i=1;i=0&t=10&t=100&t1000)printf(The last 3 numbers is %d.n,t);return 0;13. 贪吃的猴子有一只猴子,第一天摘了假如干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个例如,第5天吃了前一天剩下的一般加5个。到第n天早上再想吃的时候,就只剩下一个桃子了。输入

10、:天数n输出:第一天的桃子个数程序:#includeint main()int i,n,amount=1;scanf(%d,&n);for(i=n-1;i=1;i-)amount=2*(amount+i);printf(The monkey got %d peachs in first day.n,amount);14. 黑色星期五在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五。输入:年份输出:判断该年是否包含黑色星期五,如包含,给出具体日期程序:#includeint main()int i,n=0,yea

11、r,month12=0;int a13=0,13,44,73,104,134,165,195,226,257,287,318,348;int b13=0,13,44,72,103,133,164,194,225,256,286,317,347;scanf(%d,&year);for(i=1;i13;i+)if (year%4=0 & year%100!=0)|year%400=0)if(year-1+(year-1)/4)-(year-1)/100)+(year-1)/400)+ai)%7=5)n+;monthn=i;elseif(year-1+(year-1)/4)-(year-1)/100

12、)+(year-1)/400)+bi)%7=5)n+;monthn=i;if(n=1)printf(There is %d Black Friday in year %d.n,n,year);printf(It is:n);printf(%d/%d/13n,year,month1);elseprintf(There are %d Black Fridays in year %d.n,n,year);printf(They are:n);for (i=1;i=n;i+)printf(%d/%d/13n,year,monthi);return 0;15.你会输出一行星号?我们才开始上机,现在需要我

13、们用最简单得方法,在一行中输出N个星号。输入:N值输出:一行中N个星号。程序:#includeint main()int i,n;scanf(%d,&n); for(i=1;i=n;i+) printf(*); printf(n);16. 计算SUM的值公式:SUM = 1 + 1/2 + 1/3 + 1/4 + . + 1/n 输入: n 输出: 表达式 sum 的值。结果保存 6 位小数。程序:#includeint main()int i,n;double sum=0;scanf(%d,&n);for (i=1;i=n;i+)sum+=1.0/i;printf(sum=%.6lfn,su

14、m);return 0;17. 寻找特殊整数请编写一个程序寻找一种特殊整数:一个 n 位的正整数等于其各位数字的n次方之和。例如:407=444+000+777。所以407就是一个特殊数。输入:正整数的位数nn=6。输出: 所有此n位特殊数。每个数占一行。假如不存在符合条件的特殊数,如此输出提示:“No output.;假如存在,如此从小到大进展输出。说明:假设输入为4,在4位整数中,有3个4位的特殊数,如此输出格式为输出中的1111、2222和9999并不是4位特殊数,只是格式样例:111122229999程序:#include#include int main() int n,i,j,nu

15、m,t,s=0,t1,flag=0; scanf(%d,&n); t=pow(10,n-1); for (i=t;i= 0。输出:打印相应的空心倒三角形。图样参见测试用例。程序:#include #include int main() int i,j,h; scanf(%d,&h); for (i=1;i=h;i+) for(j=1;ji;j+) printf( ); if(i=1|i=h) for(j=1;j=2*(h-i)+1;j+) printf(*); printf(n); else printf(*); for(j=1;j=2*(h-i)-1;j+) printf( ); print

16、f(*n); return 0; 19. 空心字符菱形输入:菱型起始字母和菱形的高度。输出:参看测试用例,打印空心的由字符组成的菱形。程序:#include#include int main()int i,j,h;char ch;scanf(%c%d,&ch,&h);for (i=1;i=h;i+)for(j=1;j=h-i;j+)printf( );printf(%c,ch+i-1);for(j=1;j=2*i-3;j+)printf( );if(i=1) printf(n);continue;printf(%cn,ch+i-1);for (i=h+1;i=2*h-1;i+)for(j=1;

17、j=i-h;j+)printf( );printf(%c,ch+(2*h-1)-i);for(j=1;j=(2*h-1-i)*2-1;j+)printf( );if(i=2*h-1)printf(n);continue;printf(%cn,ch+(2*h-1)-i);return 0;20. 空心梯形输入行数 n 和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形。 要求:输出的数字是循环的,即输出数字 9 后再输出的数字是 0。输入:行数n 和首字符输出:空心梯形程序:#include#include int main()int i,j,n,f,t=0;scanf(%d%

18、d,&n,&f);t=f;for(j=1;j=3*n-2;j+)if(j=3*n-2)printf(%d,t);elseprintf(%d ,t);if(j(3*n-1)/2)if(t=9) t=0;elset+;else if(j=(3*n-1)/2&n%2=0) continue;elseif(t=0) t=9;else t-;printf(n);t=f;for (i=2;i=n;i+)for (j=1;j=2*(i-1);j+)printf( );if(i=n)for (j=1;j=(n+1)/2;j+)if(t=9) t=0;printf(%d ,t); elseprintf(%d ,

19、+t);for (j=1;j=n/2;j+)if(t=0&n%2!=0) t=9;else if(j=1&n%2=0)if(j=n/2) printf(%dn,t);elseprintf(%d ,t); continue; else t-;if(j=n/2)printf(%dn,t);elseprintf(%d ,t);elseif(t=9) printf(0);for(j=1;j=6*n-4*i-3;j+)printf( );printf(0n);t=0;elset+;printf(%d,t);for(j=1;j=6*n-4*i-3;j+)printf( );printf(%dn,t);re

20、turn 0;H1:计算通用产品代码(UPC)的校验位选作下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。然后把第二位、第四位、第六位、第八位和第十位数字相加。接着把第一次加法结果乘以3后再加上第二次加法的结果。随后,再把上述结果减去1。减法后的结果除以10取余数。最后,用9减去上一步骤中得到的余数。现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0=9。把第一组加法值乘以3后再加上第二组加法值得到的结果是30。再减去1,结果变为29。再把这个值除以10取余数为9。9在减去余数结果9,最终

21、值为0。输入:每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。输出:UPC的校验位程序:#include#includeint main() int i,j,s1=0,s2=0,t;int a11;char b6,c6;scanf(%d,&a0);scanf(%s,b);scanf(%s,c);for (i=0,j=1;i5;i+,j+)aj=bi-48;for (i=0,j=6;i5;i+,j+)aj=ci-48;for (i=0;i11;i+)if(i%2=0)s1+=ai;elses2+=ai;t=9-(s1*3+s2-1)%

22、10;printf(%dn,t);return 0;H2:数制转换选作这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如 12 和 5 ,在十进制下它们是不等的,但假如 12 使用 3 进制而 5 使用六进制或十进制时,它们的值就是相等的。因此只要选择适宜的进制, 12 和 5 就可以是相等的。 程序的输入是两个数字 M 和 N( 其十进制的值不超过 1000000000) ,它们的进制在 236 之间。对于十以下的数字,用 09 表示,而十以上的数字,如此使用大写的 AZ 表示。 求出分别在 236 哪种进制下 M 和 N 相等。假

23、如相等如此输出相应的进制,假如不等如此输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。程序:#includeint main() long int pm=0,pn=0,s=0,t=0,w=1,e=1,p=0,q=0;int a30,b30;char m30,n30;int i,j,g,k,max1=0,max2=0,flag=0;scanf(%s%s,m,n);for(i=0;mi!=0;i+)if(mi=A&mi=0&mi=9)ai=mi-48;max1=max1(ai+1)?(ai+1):max1;max1=max1=A&nj=0&n

24、j=9)bj=nj-48;max2=max2(bj+1)?(bj+1):max2;max2=max22?2:max2;pn=j;for(i=max1,j=max2;i=36&j=0;g-) p+=ag*w;w=w*i;for(k=pn-1;k=0;k-) q+=bk*e;e=e*j;if(pq) j+; else flag=1; printf(%s (base %d) = %s (base %d)n,m,i,n,j); break; if(flag=0) printf(%s is not equal to %s in any base 2.36n,m,n);return 0;21. 零钱换整钱

25、 小明手中有一堆硬币,小红手中有假如干X10元的整钱。 1 角的硬币厚度为 1.8mm,5 角的硬币厚 1.5mm, 1 元的硬币为 2.0mm 。小明和小红一起玩游戏,小红拿出假如干X10元的纸币,小明要将 1 角的硬币放成一摞,将 5 角的硬币硬币放成一摞,将 1 元的硬币放成一摞,如果 3 摞硬币一样高,并且金额能够正好小红要求的面值,如此双方可以进展交换,否如此没有方法交换。输入:小红希望交换几X10元的纸币输出:1 角的数量,5 角的数量,1元的数量程序:三种硬币厚度公倍数:18mm1角10个共1元,5角12个共6元,1元9个共9元,要想3摞硬币一样高总钱数必须是16元1+6+9的公

26、倍数#include int main() int n,t,x,y,z;scanf(%d,&n);t=n*10;if(t%16!=0)printf(No change.n);else t=t/16; x=t*10; y=t*12; z=t*9; printf(%d,%d,%dn,x,y,z);return 0; 22. 买东西.某商品有A、B、C三种品牌,各品牌的价格各不一样,其中A品牌的价格为每个5元, B品牌为每个3元,而C品牌为每3个1元。如果要用 M 元钱买 N 个该商品,要求每个商品至少买一个,编程求各种品牌各能买多少个。输入:先后输入M钱数与N商品个数的实际数值输出:所有可能情况下

27、可以购置的3种商品的个数,按A、B、C品牌的顺序输出,用逗号分隔。例如:2,30,68;表示A品牌商品2个、B品牌商品30个、C品牌商品68个。 要求:因为有多个结果,结果的排序按照A品牌的个数从少到多的顺序输出。程序:#include int main() int i,j,k;float m,n;scanf(%f%f,&m,&n);for(i=1;in-1;i+)for(j=1;j=n-1-i;j+)for(k=1;k=n-i-j;k+)if(i*5+j*3+k*1.0/3)=m&i+j+k=n)printf(%d,%d,%dn,i,j,k);return 0; 23. 谁能出线电视台举办“

28、超级学生才艺大赛,由于报名人数狂多,所以要先进展分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数0100分,各小组第一名可以进入下一轮;如果有多名学生得分一样都是第一名,如此可同时进入下一轮。输入:按顺序给出一个小组10个人的最后得分int。输出:能够出线的学生序号09。程序:#include int main() int i,s10=0,max=0; for(i=0;i10;i+) scanf(%d,&si); if(maxsi) max=si;for(i=0;i10;i+)if(si=max)printf(%dn,i);return 0; 24. 寻找特殊偶数有一种特殊偶数,它每

29、一位上的数字都两两不一样。我们现在需要找出四位数中某一区间内的这类偶数。输入所要寻找的四位偶数的X围。每组输入有两个数字:第一个数字是最小X围;第二个数字是最大X围。如果输入遇到0,输入完毕。输出列出此X围内的所有特殊偶数,并且列出此X围内特殊偶数的个数。程序:#include#includemain()int i,j,k,a,b,c,d,m=0,e;for(e=0;e=0;e+)scanf(%d%d,&i,&j);if(i=0)|(j=0) break;else if(i9999|i9999|j1000) printf(Errorn);else for(k=i;k=j;k+)if (k%2=

30、1) continue;a=k/1000;b=(k%1000)/100;c=(k%100)/10;d=k%10;if(a=b)|(b=c)|(c=d) |(d=a)|(a=c)|(d=b) continue;printf(%d ,k);m+=1;printf(ncounter=%dn,m); m=0;输入N*N图形正方形的边长N,图形左上角的字母,输出由字母围成的空心正方形。输出的字母是顺时针连续的,且是循环的,即输出字母Z后输出字母A。注意在两个字母之间有一个空格。程序:#include int main() int n,i,j,t; char m; scanf(%d %c,&n,&m);

31、for(i=0;in;i+) if(i=0) for(j=0;jn;j+) t=m+j;if(m90)|(m96&t122)t=t-26; if(j=n-1) printf(%cn,t); else printf(%c ,t); else if(i=n-1) for(j=0;jn;j+) t=m+3*n-3-j; if(m90)|(m96&t122) t=t-26; if(j=n-1) printf(%cn,t); else printf(%c ,t); else for(j=0;j2*n-1;j+) if(j=0) t=m+4*n-4-i; if(m90)|(m96&t122) t=t-26

32、; printf(%c,t); else if(j=2*n-2) t=m+n-1+i; if(m90)|(m96&t122) t=t-26; printf(%cn,t); else printf( ); return 0; H3:猜数字选作有如下一组数字,其中每个数字都在 1 63 之间, 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 632 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 34 35 38 39 42 43 46

33、 47 50 51 54 55 58 59 62 634 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 36 37 38 39 44 45 46 47 52 53 54 55 60 61 62 638 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 40 41 42 43 44 45 46 47 56 57 58 59 60 61 62 6316 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52 53 54 55 56 57 58 59 60 61

34、 62 6332 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 现在需要编写一个程序,当从键盘输入某数字在且仅在哪几行出现了,该程序可以“猜出这个数字是几。输入:程序的输入是一串以空白符分开的数字,当输入 0 时表示输入完毕。输出:输出猜到的数字。程序:#include int main() int a7,m,n=0,i,p=0; for (i=0;i7;i+) scanf(%d,&ai); n+; if (ai=0) break; scanf( ); f

35、or (m=1;m64;m+) p=0; for (i=0;i31&m48|m16) p=1;break; if (ai=6) if (m32) p=1;break; if (p=0) printf(%dn,m);break; return 0; H4:小蜜蜂选作一只小蜜蜂在如如下图所示的蜂窝上爬行。它爬行时,只能从一个格爬到相邻的大号格子中。例如,从 1 号格子可以爬到 2 号或者 3 号格子,从 2 号如此可以爬到 3 号或者 4 号格子。请问从一个格子 a 爬到一个格子 b 一共有多少种可行的路线。 输入:分别是起始点 a 和终止点 b 的编号。 a 和 b 在 1100 之间,且 ab

36、 。 输出:程序:#includestdio.h #define N 50 int main() int bN=0; int cN=0; int i,j,k,n,a1,a2,t,l; b1=c1=1; scanf(%d%d,&a1,&a2); n=a2-a1+1; for(j=3;j=n;j+) for(i=1;i=10) l=1; bi+1=bi+1+1; bi=bi%10; k=N; while(b-k=0) for(i=k;i=1;i-) printf(%d,bi); printf(n); return 0; #include int main()long double num1,num

37、2,num3=0;int a=0,b=0,i;scanf(%d %d,&a,&b);num1=1;num2=2;if(b-a=1)printf(1n);else if(b-a=2)printf(2n);else for(i=3;i=b-a;i+) num3=num1+num2; num1=num2; num2=num3; printf(%.0lfn,num3);return 0; H5.铺地板选作背景:你是一名室内装潢工程队的配料员。你的伙伴们喜欢采用“之字型的方式铺某某石地砖,图案如下:1 2 6 7 15 3 5 8 14 16 4 9 13 17 22 10 12 18 21 23 11

38、 19 20 24 25 学了 C 语言以后,你决定编写一个程序,帮助你的同伴生成这样的图形。输入:方阵N的大小。输出方阵。程序:#include int main() int i=0,j=0,g,n,t=1; int a100100; scanf(%d,&n); for(g=0;gn;g+) if(g%2!=0) for(i=0,j=g;i=0;i+,j-)aij=t; t+; else for(i=g,j=0;i=0&j=g;i-,j+)aij=t; t+; for(g=1;gn;g+) if(g%2!=0) for(i=g,j=n-1;i=g;i+,j-)aij=t; t+; else

39、for(i=n-1,j=g;i=g&jn;i-,j+)aij=t; t+; for(i=0;in;i+) for(j=0;jn;j+) if(j=n-1) printf(%2d,aij); else printf(%2d ,aij); printf(n); return 0; H6 晕选作看着这样的“回形图案你晕吗?让我们不用数组,来做出它。输入:n。正方形的边长输出:边长为 n 的数字回形方阵。程序:#include int main() int a2020,i,j,n,m=1,l,k=0; scanf(%d,&n); l=n; for(i=1;i=(n+1)/2;i+) for(j=0;j

40、l;j+) akj+k=j+m; an-1-kj+k=3*l-3+m-j; for(j=1;j=l-1;j+) aj+kk=4*l-4-j+m; aj+kn-1-k=l+j+m-1; m=m+4*l-4; l=l-2; k=k+1; for(i=0;i=n-1;i+) for(j=0;j=n-1;j+) printf(%3d,aij); printf(n); H7 子数整除选作对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:sub1=a1a2a3 sub2=a2a3a4 sub3=a3a4a5 例如,五位数20207可以拆分成:sub1=202 sub2=020=20 sub3=20

41、7 现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1、sub2、sub3都可被K整除。输出时请按照由小到大的顺序排列每行输出一个数。程序:#include int main(void)int i,j,k,l,m,n;scanf(%d,&n);for (i=1;i=3;i+)for (j=0;j=9;j+)for (k=0;k=9;k+)for (l=0;l=9;l+)for (m=0;m=9;m+)if (i*100+j*10+k)%n=0&(j*100+k*10+l)%n=0&(k*100+l*10+m)%n=0)pr

42、intf(%d%d%d%d%dn,i,j,k,l,m);if (i=3) return 0;return 0;H8 邮票组合选作背景: 我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一X或几X的组合,可以满足不同的不同的邮资。 现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5X邮票,面值可一样,可不同。输入: 四种邮票的面值。输出: 用这四种面值组成的邮资最大的从1开始的一个连续的区间。说明: 如结果为10,如此明确使用4X邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。名词解释: 邮资:就是你寄东西需要花多少钱。 邮票面额:是由国家发行的具有固定价格

43、的花纸片,被称为邮票。如果你寄东西,邮局称了重量,告诉你要240分。这样你就要贴邮票了。如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:采用3X80分的可以凑出240分;或者24X10分的凑起来240分也可以。显然不同邮票的组合都可以得到同样一种邮资。程序:#includemain()int i,j,k,p,a1,a2,a3,a4,m=1,flag;scanf(%d%d%d%d,&a1,&a2,&a3,&a4);A:for(i=0;i=5;i+)for(j=0;j=5-i;j+)for(k=0;k=5-i-j;k+)for(p=0;

44、p=5-i-j-k;p+)flag=1;if(a1*p+a2*k+a3*j+a4*i=m)flag=0;m+;goto A;if(flag=1)printf(The max is %d.n,m-1);H9 撞球(选做)一天,丁俊晖编一整天的程序,突然觉得累了,于是便决定在房间内四处走走。他的房间是矩形的,他从电脑开始随便选了一个角度开始行走。由于职业习 惯,丁俊晖走路始终是直线,而且碰到墙以后会反弹,入射角度与出射角度完全一样。丁俊晖会一直行走,直到灵感再次迸发。假设他的行走速度是匀速的,现在, 丁俊晖的母亲想知道他一共休息了多长时间以便提醒他继续工作。 丁俊晖想考考他的母亲,于是他记录了自己

45、碰到墙壁的序列并且告诉了她,你有没有方法能够帮助她计算出小丁所走的路程? 输入输入包括多个测试用例,每个测试用例如下: 第一行包含两个数字 w, l(0w, l=1000),分别代表房间的宽度和长度; 第二行包括两个数字 x0, y0,代表电脑的位置坐标 (x0, y0); 第三行包含两个数字 x1, y1,代表丁俊晖的位置坐标 (x1, y1); 最后一行是一个包含F, B, L, R四种字符的字符串,分别代表墙在前面、后面、左边或是右边,字符串的长度小于等于 1000; 我们约定,左上角的坐标为0,0,所有的坐标都是浮点型数字。输出一个浮点型数字,代表总路程,结果准确到小数点后 4 位。

46、程序:#includestdio.h#includestring.h#includemath.hvoid main() char a2000;int w,l,x0,y0,x1,y1,i,k,r=0,f=0,n=0,m=0;double c,d,s;scanf(%d%d,&w,&l);scanf(%d%d,&x0,&y0);scanf(%d%d,&x1,&y1);scanf(%s,a);k=strlen(a);for(i=0;ik;i+)if(ai=R|ai=L)m+;if(ai=F|ai=B)n+;for(i=0;i0) break;for(i=0;i0) break;if(m%2=0)d=m*w+(x0-x1)*pow(-1,r);elsed=m*w+w-x0-x1;if(n%2=0)c=n*l+(-y0+y1)*pow(-1,f);el

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!