第九周编程总结
题目1: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)
{
printf("[1] apple [2] pear [3] orange [4] grape [0] exit ");
int i, price;
for(i=1;i<=5;i++){
scanf("%d",&price);
if(price==0){
break;
}
switch(price){
case 1:printf("price = 3.00 ");break;
case 2:printf("price = 2.50 ");break;
case 3:printf("price = 4.10 ");break;
case 4:printf("price = 10.20 ");break;
default:printf("price = 0.00 ");break;
}
}
return 0;
}
2).设计思路
第一步 进行价格输出
第二步 使用循环语句和switch语句对不同的商品的价格进行输出
第三步 返回主函数
3)本题调试中遇到的问题及解决方案
在运用switch语句时,没有考虑到输出格式,总是出现答案错误
4).运行结果截图
题目2: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()
{
int a,b;
double price;
char c;
scanf("%d %d %c",&a,&b,&c);
if(b==90)
price=a*6.95;
else if(b==93)
price=a*7.44;
else if(b==97)
price=a*7.93;
if(c=='m')
price=price*0.95;
else
price=price*0.97;
printf("%.2lf",price);
return 0;
}
2).设计思路
第一步 对于服务等级和汽油号
第二步使用if-else语句进行条件选择计算价格
第三步输出价格
3)本题调试中遇到的问题及解决方案
本题没有遇到问题
4).运行结果截图
题目3:7-3 计算天数 (15 分)
本题要求编写程序计算某年某月某日是该年中的第几天。
1).实验代码
#include <stdio.h>
int main() {
int y, m, d;
int p,i;
scanf("%d/%d/%d", &y, &m, &d);
p = d;
for(i = 1; i < m; i++)
{
switch(i) {
case 1:case 3:case 5:case 7:
case 8:case 10:case 12:
p += 31; break;
case 4:case 6:case 9:case 11:
p += 30;break;
case 2:
if((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
p += 29;
else
p += 28;
}
}
printf("%d", p);
return 0;
}
2).设计思路
第一步 格式化输入年月日
第二步 运用for语句进行循环,switch语句对于不同的月份的天数进行判断和计算
第三步 输出总天数
3)本题调试中遇到的问题及解决方案
在case语句的运用错误,导致无法计算出结果
4).运行结果截图