习题4-选择结构程序设计
1、代理费计算
【问题描述】
某公司规定代理商代理费按下表计算:
交易金额(元) 代理费
(0,3000) 18+本金的1.2%
[3000,6000) 36+本金的0.6%
[6000~10000) 54+本金的0.3%
编程计算并打印本金在10000元以下的任一笔交易金额所应提取的代理费。(1、用switch语句完成;2、用if语句完成)
输入错误数据时,给出“data error!”的提示。
【输入形式】
输入交易金额。
【输出形式】
输出代理费。
【样例输入】
3500.00
【样例输出】
the cost is 57.00 RMB
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{float x,y;scanf("%f",&x);if(x>0&&x<3000){y=18.0+x*1.2/100.0;}else if (x>=3000&&x<6000){y=36.0+x*0.6/100.0;}else if (x>=6000&&x<10000){y=54.0+x*0.3/100;}else {printf("data error!");return 0;}printf("the cost is %.2f RMB",y);return 0;
}
2、分段函数求解
【问题描述】用嵌套的if语句写程序,求y的值。a(a值为正)和x通过键盘输入。
【输入形式】输入a(正数)和x的值。
【输出形式】输出a、x和y的值。
【样例输入】a=5.5,x=12.5
【样例输出】a=5.50,x=12.50,y=12.50
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{double a,x,y;scanf("a=%lf,x=%lf",&a,&x);if (fabs(x)==a){y=0;}else if (x>-a&&x<a){y=sqrt(a*a-x*x);}//if (x<-a||x>a)else{y=x;}printf("a=%.2f,x=%.2f,y=%.2f\n",a,x,y);return 0;
}
3、某点的建筑高度计算
【问题描述】
有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。
【输入形式】
一个点的坐标:输入坐标值(x,y)
【输出形式】
输出该点的高度
【样例输入】
//以下为两组测试数据
2.0,2.0
0.0,0.0
【样例输出】
height is 10
height is 0
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{double x,y;scanf("%lf,%lf",&x,&y);if (x<0){x=-x;}if(y<0){y=-y;}if((x-2)*(x-2)+(y-2)*(y-2)<=1){printf("height is 10\n");}else{printf("height is 0\n");}return 0;
}
4、百分制成绩转换为等级
【问题描述】
给出一个百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90分以上为'A',80~89为'B',70~79为'C',60~69为'D',60分以下为'E'。其他情况请输出“Input Error”。
【输入形式】
一个整数:输入百分制成绩
【输出形式】
输出该成绩对应的等级
【样例输入】
//以下为多组测试数据
70
100
85
66
45
102
【样例输出】
//以下为多组数据对应的结果
Level C
Level A
Level B
Level D
Level E
Input Error
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int x;scanf("%d",&x);if (x>=90&&x<=100){printf("Level A\n");}else if (x>=80&&x<90){printf("Level B\n");}else if (x>=70&&x<80){printf("Level C\n");}else if (x>=60&&x<70){printf("Level D\n");}else if (x>0&&x<60){printf("Level E\n");}else{printf("Input Error\n");}return 0;
}