电专c语言oj探秘2
题组22
本题组来源于西电oj的22题组(hqy老师课程课后习题),题目还是很简单,依旧适合萌新。
关于西电oj链接替换(已知hqy老师课程适用)的问题:
从第二份题组开始,所有的题目都会在新的链接发布,原本的链接将会被弃用。
电专必看
如果你提交的时候一直编译错误:
请确保你提交的题目和选择的文件匹配。
请确保你选择的编译选项正确,一般有两个选项visual c++和GNU C/C++(通常其他的编译器如devc++选择这个)。编者因为选错报错了一次
请确保你使用的标准是ANSIC或者C99,没有任何奇奇怪怪的东西(如vs的scanf_s函数等)。
如果你在本地一直编译错误或输出错误:
阅读电专编译小手册。
在编译的时候开启-Wall,一般你提问的时候,不接受任何警告问题。
别在ACM群提问,作业的报错一般在里面问都会被喷。
本题解仅供学习参考使用,懂的都懂。
所以文件不给了(老子太懒啦~~~)
T1 车牌限行
时间限制:1 秒
内存限制:256KB
问题描述:
受雾霾天气影响,某市决定当雾霾指数超过设定值时对车辆进行限行,假设车牌号全为数字,且长度不超过6位,限行规则如下:
(1)限行时间段只包括周一至周五,周六周日不限行;
(2)如果雾霾指数低于200,不限行;
(3)如果雾霾指数大于等于200且低于400,每天限行两个尾号的汽车,周一限行1和6,周二限行2和7,周三限行3和8,周四限行4和9,周五限行5和0;
(4)如果雾霾指数大于等于400,每天限行五个尾号的汽车,周一、周三和周五限行1,3,5,7,9,周二和周四限行0,2,4,6,8。
现在给出星期几、雾霾指数和车牌号,判断该车牌号是否限行。
输入说明
输入分为三个整数,第一个整数表示星期几(17,1表示周一,2表示周二,依次类推,7表示周日),第二个整数表示雾霾指数(0600),第三个整数表示车牌号,整数之间用空格分隔。
输出说明
输出为两个部分,第一部分为车牌最后一位数字,第二部分为限行情况,限行输出yes,不限行输出no。
输入样例
输入样例1
4 230 80801
输入样例2
3 300 67008
输出样例
输出样例1
1 no
输出样例2
8 yes
本题小解析
这道题的判断主要由这么几个,按照优先度排序是这样的:
1.今天星期几(仅周一到周五限行,周末不限行,如果是疯狂星期四,v我50)
2.雾霾指数(200,400分别为临界点)
3.车牌尾号(如何实现计算车牌尾号?%10就行)
注意点比如说输出格式问题,取余问题等。通常这题容易出现七八十分的情况,需要自己检查自己的条件语句写的有无出错和重复遗漏。
弱鸡代码
1 |
|
弱鸡代码里面用到了bool变量,方便最后的输出。
用if…else…或者swtich…case…语句都可。
T2 阶梯电价计费
类别:流程控制
时间限制:2S
内存限制:10000Kb
问题描述:
电价分三个档次,[0,110]度电,每度电0.5元;(110,210]度电,超出110部分每度电0.55元,超过210度电,超出210部分每度电0.70元,给出一个家庭一月用电量,请计算出应缴的电费(四舍五入,保留小数点后两位小数)。
输入说明:
输入数据为一个正实数,表示一月用电量
输出说明:
输出应缴电费,四舍五入保留2位小数。
输入样例:
输入样例1
100
输入样例2
200
输入样例3
329.75
输出样例:
输出样例1
50.00
输出样例2
104.50
输出样例3
193.82
本题小解析
一个简单的计价判断问题。根据不同的阶梯计算出价格就行。
注意数据格式问题和精度问题。
弱鸡代码
1 |
|
T3 计算某月天数
类别:流程控制
时间限制:2S
内存限制:10000Kb
问题描述:
每年的1,3,5,7,8,10,12月有31天,4,6,9,11月有30天,闰年2月29天,其他年份2月28天,给定年份和月份求该月的天数
输入说明:
输入由两个正整数a和b构成,a表示年份,b表示月份,a和b之间用空格分隔
输出说明:
根据年份和月份计算该月天数并输出
输入样例
输入样例1
2000 3
输入样例2
2001 2
输出样例
输出样例1
31
输出样例2
28
本题小解析
本题其实是一个月份判断和年份判断的综合题。
注意闰年的定义:年份为4的倍数,不是100的倍数但为400倍数的,是闰年。
弱鸡代码
1 |
|
用if…else也可。
T4 寻找最大整数
类别:流程控制
时间限制:1S
内存限制:1000Kb
问题描述
从键盘输入四个整数,找出其中的最大值并将其输出。
输入说明
输入4个整数,用空格分隔
输出说明
输出值最大的一个整数
输入样例
25 99 -46 0
输出样例
99
本题小解析
如何判断一个数最大呢?或许直接用if来比较a,b,c,d这四个数的大小并不合适。
但是,我们可以先选出一个数,让他和其他的数pk,如果这个数比其他的数小,换一个数当最大数,而如果这个数最大,就可以保留下来。
这样的话只需要n-1次比较就可以选出n个数里面的最大数。
弱鸡代码
1 |
|
也可以设数组用循环,这里四个数就不搞这些了。
T5 字符处理
类别:流程控制
时间限制:1S
内存限制:1000Kb
问题描述
从键盘输入一个字符,若为小写字母,则输出其对应的大写字母;若为大写字母,则输出对应的小写字母;其他字符原样输出。
输入说明
输入一个字符
输出说明
输出一个字符
输入样例
样例1输入
a
样例2输入
B
样例3输入
2
输出样例
样例1输出
A
样例2输出
b
样例3输出
2
本题小解析
其实这题就两个点:
1.判断这个字母是大写字母还是小写字母还是其他字符,用ASCII码控制。
2.对大小写字符进行操作(+或-32)。
弱鸡代码
1 |
|
鉴于本人懒得查表看各位字符的ASCII码了,直接用字符代替。
T6 成绩分级
类别:流程控制
时间限制:1S
内存限制:1000Kb
问题描述
给出一个百分制的成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,8089分为’B’,7079分为’C’,60~69分为’D’,60分以下为’E’。
输入说明
输入一个正整数m(0<=m<=100)
输出说明
输出一个字符
输入样例
59
输出样例
E
本题小解析
一个可以用if…else…或者switch…case…的案例。
由于成绩是10分一等位,故可以/10来进行转化并用swtich…case…语句。
弱鸡代码
1 |
|
由于题目数据范围为0-100,在除去ABCD等第后,剩下的都为E等第,故用default代替。
T7 直角三角形
类别:流程控制
时间限制:1S
内存限制:1000Kb
问题描述
设直角三角形两条直角边长度为a和b,斜边长度为c,则a,b,c满足a^2+b^2=c^2,
输入三个整数a,b,c,判断对应的三角形是不是直角三角形,不是则输出“no”,是则输出其面积的2倍。
输入说明
数据由同一行的三个整数a,b,c构成,整数之间以空格分隔
输出说明
如果输入的三个整数可以构成一个直角三角形,则输出一个整数表示该三角形面积的2倍;否则输出“no”
输入样例
样例1输入
1 1 2
样例2输入
3 4 5
输出样例
样例1输出
no
样例2输出
12
本题小解析
本题主要是注意直角三角形的判断和三角形公式的运算。
在给定三角形三条边a,b,c的时候,有S=sqrt(p(p-a)(p-b)(p-c)),p=(a+b+c)/2,称为海伦公式。
若a,b,c满足a^2+b^2=c^2,必存在以a,b,c为三边的三角形。同时要注意a,b,c都为最长边的情况。
如果使用sqrt函数,要包含<math.h>头文件。
注意输出要求,两倍的面积或no。
弱鸡代码
1 |
|
T8 工资计算
问题描述
小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资为S元,则他应交的个人所得税按如下公式计算:
1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元;
2) A中不超过1500元的部分,税率3%;
3) A中超过1500元未超过4500元的部分,税率10%;
4) A中超过4500元未超过9000元的部分,税率20%;
5) A中超过9000元未超过35000元的部分,税率25%;
6) A中超过35000元的部分,税率30%;
例如,如果小明的税前工资为10000元,则A=10000-3500=6500元,其中不超过1500元部分应缴税1500×3%=45元,超过1500元不超过4500元部分应缴税(4500-1500)×10%=300元,超过4500元部分应缴税(6500-4500)×20%=400元。总共缴税745元,税后所得为9255元。
已知小明这个月税前所得为S元,请问他的税后工资T是多少元。
输入格式
输入为一个整数S,表示小明的税前工资。
输出格式
输出一个整数T,表示小明的税后工资。
样例输入
10000
样例输出
9255
评测用例规模与约定
对于所有评测用例,1 ≤ T ≤ 100000。
所有评测数据保证小明的税前工资为一个整百的数。
本题小解析
一个经典的判断题,就是有点老了,个税改革啦!
注意个人起征点和分段计算原则。
注意输出为税后工资而不是个人所得税。
弱鸡代码
1 |
|