第九周编程总结
7-1 查询水果价格 (15 分)
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。
1)实验代码
include<stdio.h>
int main (void)
{
int choice,i;
double price;
printf("[1] apple\n");
printf("[2] pear\n");
printf("[3] orange\n");
printf("[4] grape\n");
printf("[0] exit\n");
for(i=1;i<=5;i++){
scanf("%d",&choice);
if(choice==0)
break;
switch(choice){
case 1:price = 3.00;break;
case 2:price = 2.50;break;
case 3:price = 4.10;break;
case 4:price = 10.20;break;
default:price = 0.00;break;
}
printf("price = %.2lf\n",price);
}
return 0;
}
2)设计思路
1.定义水果价格,种类
2.进行价格输出
3.使用循环语句和switch语句对不同水果价格进行输出
4.返回主函数
3)本题调试中遇到的问题及解决方案
1.将水果种类放到了for循环里面
2.格式错误
4)运行结果截图
7-2 计算油费 (15 分)
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。
1)实验代码
include<stdio.h>
int main(void)
{
int a,b;
double money,price,z;
char op;
scanf("%d %d %c", &a, &b, &op);
switch(b)
{
case 90:price = 6.95; break;
case 93:price = 7.44; break;
case 97:price = 7.93; break;
}
switch(op)
{
case 'm':z = 0.95; break;
case 'e':z = 0.97; break;
}
money = price*z*a;
printf("%.2f",money);
return 0;
}
2)设计思路
1.定义(int)汽油品种和加油量,(double)价格,折扣和应付总金额,(char)服务类型
2.使用两个switch将汽油品种和服务类型进行分类,最后算出应付总金额
3.输出,返回主函数
3)本题调试中遇到的问题及解决方案
暂无
4)运行结果截图
7-3 计算天数 (15 分)
本题要求编写程序计算某年某月某日是该年中的第几天。
1)实验代码
include<stdio.h>
int main()
{
int y,m,d,i,t;
scanf("%d/%d/%d",&y,&m,&d);
t=d;
for(i=1;i<m;i++){
switch(i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
t=t+31;
break;
case 4:
case 6:
case 9:
case 11:
t=t+30;
break;
case 2:
if((y%40)&&(y%100!=0)||(y%4000))
t=t+29;
else
t=t+28;
}
}
printf("%d",t);
return 0;
}
2)设计思路
1.定义总天数t,首先t=d(d为天数)
2.用for循环,用switch分类,30天,31天,再用if判断2月份,一步步累加
3.输出总天数
3)本题调试中遇到的问题及解决方案
switch的三种用法会搞混淆
4)运行结果截图