PTA-2017实验2.2 计算分段函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PTA-2017实验2.2 计算分段函数相关的知识,希望对你有一定的参考价值。
参考技术A 7-1 计算摄氏温度(10 分)
给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出一个华氏温度。
输出格式:
在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。
输入样例:
输出样例:
源码
7-2 计算分段函数[1](10 分)
本题目要求计算下列分段函数f(x)的值:
输出样例1:
输入样例2:
输出样例2:
源码
7-3 计算存款利息(10 分)
本题目要求计算存款利息,计算公式为interest=money×(1+rate) year −money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。
输入格式:
输入在一行中顺序给出三个正实数money、year和rate,以空格分隔。
输出格式:
在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。
输入样例:
输出样例:
源码
7-4 计算分段函数[2](10 分)
本题目要求计算下列分段函数f(x)的值:
输出样例1:
输入样例2:
输出样例2:
源码
7-5 求整数均值(10 分)
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出4个整数,其间以空格分隔。
输出格式:
在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。
输入样例:
输出样例:
源码
7-6 阶梯电价(15 分)
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
输入格式:
输入在一行中给出某用户的月用电量(单位:千瓦时)。
输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。
输入样例1:
输出样例1:
输入样例2:
输出样例2:
源码
7-7 计算火车运行时间(15 分)
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
输入样例:
输出样例: *
源码
第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告
一.实验题目,设计思路,实现方法
第四次分支+循环 加强版 (2-2计算个人所得税,2-7 装睡,2-8计算天数)
设计思路:2-2 用if-else的语句,与计算分段函数的题类似的做法;2-7 运用for语句依次进行呼吸频率和脉搏的比较;2-8 运用数组的思想求出在平年的情况下的天数,然后用if-else进行分支判断是否为闰年加上一天。
实现方法:前两个就是一般的if-else与for语句;2-8 先定义一个整数型数组共十二个元素,然后输入时间进行计算,接着进行平闰年的判断。
二.源程序
2-2 double a,b;
scanf("%lf",&a);
if (a<=1600) {
b=0.00;
}
else if (a<=2500) {
b=0.05*(a-1600);
}
else if (a<=3500) {
b=0.10*(a-1600);
}
else if (a<=4500) {
b=0.15*(a-1600);
}
else {
b=0.20*(a-1600);
}
printf("%.2lf",b);
2-7 int i,a,b,N;
char name [9];
scanf("%d",&N);
for (i=1;i<=N;i++) {
scanf("%s%d%d",name,&a,&b);
if (a>20||a<15||b<50||b>70) {
printf("%s\n",name);
}
}
2-8 int a,b,c,s,i;
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
s=0;
scanf("%d/%d/%d",&a,&b,&c);
for (i=0;i<b-1;i++) {
s=s+m[i];
}
if (b<2) {
printf("%d",s+c);
}
else {
if (a%4==0&&a%100!=0||(a%400==0)) {
printf("%d",s+c+1);
}
else {
printf("%d",s+c);
}
}
三.遇到的问题及解决方法,心得体会
2-2 出现了无收入的错误,寻求了学姐的帮助,得知定义了double型的变量,进行计算时的常量最好不能为整型;另外,当a<1600时不能带入进公式计算,否则将出现0负的情况。
2-7 通过这道题学会了如何定义和输入字符,以及懂得了如何控制输出宽度。
2-8 在dev中编译运行无误后提交部分正确,才发现是没考虑到一月的情况,意识到错误后增添了一个if-else的判断所给日期的月份是否大于2的语句,最后才完全正确。
if-else的语句中大括号的位置对齐很重要!
以上是关于PTA-2017实验2.2 计算分段函数的主要内容,如果未能解决你的问题,请参考以下文章