第九周编程总结

第九周编程总结

题目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).运行结果截图

原文地址:https://www.cnblogs.com/chenguohhw/p/9952182.html