int mid(int a,int b,int c) {
if ( a >= b )
if ( a >= c ) return (b>=c ? b : c); else return a; else
if ( b >= c ) return (a>=c ? a : c); else return b; }
还原算术表达式(4分)
题目内容:
编写程序求以下算式中XYZ的值,其中两数XYZ与YZZ相加的和n(99 程序运行结果示例1: Input n(n<1000): 532↙ X=3,Y=2,Z=1 程序运行结果示例2: Input n(n<1000): 977↙ Invalid 输入格式: \ 输出格式: 输入提示:\Input n(n<1000):\\n\ 输出格式:\ 计算不成功(无解)的输出提示:\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:31kb #include int a; int x = 0; int y = 0; int z = 0; printf(\ scanf(\ for (x = 1; x < 10; x++) { for (y = 0; y < 10; y++) { for (z = 0; z < 10; z++) { if (x * 100 + y * 10 + z + y * 100 + z * 10 + z == a) { printf(\ } else { printf(\ exit(0); } } } } return 0; } #include int x,y,z; for (x=0;x<=9;x++) for (y=0;y<=9;y++) for (z=0;z<=9;z++) if (x*100+y*110+z*12==532) printf(\ return 0; } 第8周 1 计算礼炮声响次数(4分) 题目内容: 在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。 输入格式:无 输出格式:\n=%d\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb #include int n = 0, t; for (t = 0; t <= 20 * 7; t++) { if (t % 5 == 0 && t <= 20 * 5) { n++; continue; } if (t % 6 == 0 && t <= 20 * 6) { n++; continue; } if (t % 7 == 0) { n++; } } printf(\} 2 兔子生崽问题(4分) 题目内容: 假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,n(n<=12)月以后可有多少对兔子(即当年第n月份总计有多少对兔子,含成兔和小兔)?请编程求解该问题,n的值要求从键盘输入。 参考答案:依题意,兔子的繁殖情况如图所示。图中实线表示成兔仍是成兔或者小兔长成成兔;虚线表示成兔生小兔。观察分析此图可发现如下规律: (1)每月小兔对数 = 上个月成兔对数。 (2)每月成兔对数 = 上个月成兔对数 + 上个月小兔对数。 综合(1)和(2)有:每月成兔对数 = 前两个月成兔对数之和。 用fn(n=1,2,…)表示第n个月成兔对数,于是可将上述规律表示为如下递推公式: 程序运行示例: Input n(n<=12): 10↙ 1 2 3 5 8 13 21 34 55 89 Total=89 输入格式:\输出格式: 输入提示:\每个月兔子对数的输出格式: \ 第12个月的兔子总数的输出格式: \ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb #include { int n; int i,a[13]; a[1]=1;a[0]=1; printf(\ scanf(\ for (i=2;i<=n;i++) a[i]=a[i-1]+a[i-2]; for (i=1;i<=n;i++) printf(\ printf(\ return 0; } 3 抓交通肇事犯(4分) 题目内容: 一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。 [提示]:假设这个4位数的前两位数字都是i,后两位数字都是j,则这个可能的4位数 k = 1000*i + 100*i + 10*j + j 式中,i和j都在0~9变化。此外,还应使k=m*m,m是整数。由于k是一个4位数,所以m值不可能小于31。 输入格式: 无 输出格式:\k=%d,m=%d\\n\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb #include int i,m,ans; for (m=31;m<=100;m++) { ans=m*m; if (((ans/100)==0)&&((ans0)==0)) printf(\