第九周编程总结--助教
题目1 查询水果价格
(1)实验代码
#include<stdio.h>
int main ()
{
int i,choice;
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);
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;
}
if(0==choice)
break;
printf("price = %.2f\n",price);
}
return 0;
}
(2)设计思路
第一步:定义变量,打印查询列表
第二步:运用for循环输入scanf,再用switch语句判断
第三步:输出价格,如果choice为0跳出循环
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
一个是格式问题,输入和输出中的空格没有注意,还一个是打印查询表格的位置问题。
(4)运行结果截图
题目2 计算油费
(1)实验代码
#include<stdio.h>
int main ()
{
double a,price,s;
int b;
char c;
scanf("%lf %d %c", &a, &b, &c);
switch(b)
{
case 90:price = 6.95;break;
case 93:price = 7.44;break;
case 97:price = 7.93;break;
}
if(c == 'm')
{
s = price * a * 0.95;
}
if(c == 'e')
{
s = price * a * 0.97;
}
printf("%.2f",s);
return 0;
}
(2)设计思路
第一步:定义变量,输入在一行中给出两个整数和一个字符
第二步:使用switch语句判断是几号汽油,输出价格
第三步:用if语句判断是自助还是协助
第四步:计算结果输出
(3)本题调试过程碰到问题及解决办法
一次通过,无问题
(4)运行结果截图
题目3 计算天数
(1)实验代码
#include<stdio.h>
int main ()
{
int y, m, d, a;
scanf("%d/%d/%d", &y, &m, &d);
switch(m)
{
case 1:a = 0;break;
case 2:a = 31;break;
case 3:a = 59;break;
case 4:a = 90;break;
case 5:a = 120;break;
case 6:a = 151;break;
case 7:a = 181;break;
case 8:a = 212;break;
case 9:a = 243;break;
case 10:a = 273;break;
case 11:a = 304;break;
case 12:a = 334;break;
}
if(y%4==0&&y%100!=0||y%400==0)
{
a = a + 1;
if(m==1)
a = a - 1;
}
printf("%d",d+a);
return 0;
}
(2)设计思路
第一步:定义变量,输入年月日
第二步:用switch语句判断是几月,输出天数
第三步:如果是闰年增加一天,如果为一月减去一天
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
这题比较骚,不过还是不难,主要是在每月上累加天数,很容易计算错误。
我出错在闰年的一月,用了if语句改正了错误。
(4)运行结果截图