实验题目4:某个服装展厅宣布表所示的物品季节性打折.
请使用switch和if语句编写一个程序,计算某顾客应付的款项. 设计思想:将输入值除以100,再强制转换为int型得到c值,在此之前用if语句将边界值提前去掉,防止对switch语句造成干扰,同时使用if来检测非法值的输入,运用goto语句跳转使其重新输入. 实验代码及注释: #include
double moneya,moneyb,summoney;//机加工制品总额,手工制品总额
int c;//switch变量
quit :;//输入非法值让其重新输入数据用goto跳转到此 printf(\请输入机加工制品总金额和手工制品总金额:\ scanf(\ summoney=moneya+moneyb;//计算总金额 c=(int)(summoney/100);//得到switch语句变量c if(summoney<0) {
printf(\数据错误!\\n\
goto quit;//输入非法值故让其重新输入数据用goto跳转到quit位置注意goto语句跳转位置 }
else if(summoney==100)//将边界值用if语句处理,switch语句无法处理 {
summoney=moneya+moneyb*0.95; }
else if(summoney==200) {
summoney=moneya*0.95+moneyb*0.925; }
else if(summoney==300) {
summoney=moneya*0.925+moneyb*0.9; } else {
switch (c)//边界值去掉用switch { case 0:
summoney=moneya+moneyb*0.95; break; case 1:
summoney=moneya*0.95+moneyb*0.925; break; case 2:
summoney=moneya*0.925+moneyb*0.9; break; default :
summoney=moneya*0.9+moneyb*0.85; } }
printf(\顾客应付的款项为:%.2lf(元)\\n\ return 0;
}
验证与结论:
总结与心得体会:switch在边界值处理上比较麻烦,有时容易出错,需要注意,一般要与if搭配使用,但switch语句提高了运行速度,goto语句慎用
实验题目5:一个电表按照如下的比率计费: 前200度电:每度0.8元; 后100度电:每度0.9元; 超过300度电:每度1元;
所有用户都是按照最少100元进行收费.如果总费用大于400元还要加收总数的15%的费用.请编写一个程序,读取用户名和用电量,并按用户名显示应收费. 设计思想:
声明长整型变量name,double型变量electric_quantity,money,用if语句来进行判断电量electric_quantity范围,最后对费用总数与400进行判断,输出用户名与费用 实验代码及注释: #include
double electric_quantity,money; long int name;
printf(\请输入用户名和电量:\