第九周编程总结

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()

{

  

       printf("[1] apple ");

       printf("[2] pear ");

       printf("[3] orange ");

       printf("[4] grape ");

       printf("[0] exit ");

       

  

  int choice,i;

       

  for(i=1;i<=5;i++)

     {

       scanf("%d",&choice);

       

       if(choice==0)

           break;

       switch(choice)

          {

            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). 设计思路

第一步:定义变量

第二步:打印菜单

第三步:调用for语句,输入变量

第四步:调用if和switch函数判断编号

第五步:输出答案

3).本题调试过程碰到的问题及解决方法

        问题:没有考虑到输入0及退出程序的条件

       解决方法:调用if语句判断当编号为0

       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()

{

  int a,b;

  char c;

  double money=0,price=0,discount=0;

  scanf("%d %d %c",&a,&b,&c);

  /*加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)*/

  switch(b){

    case 90:price=6.95;break;

    case 93:price=7.44;break;

    case 97:price=7.93;break;

  }

  switch(c){

    case 'm':discount=0.95;break;

    case 'e':discount=0.97;break;

  }

  money=a*price*discount;

  printf("%.2f",money);

  return 0;

  

}

2).设计思路

第一步:定义变量

第二步:输入变量

第三步:调用switch函数,判断汽油品种和服务类型

第四步:计算油价

第五步:输出答案

3) .本题调试过程碰到的问题及解决方法

          问题:折扣计算错误

          解决方法:仔细阅览题目算清折扣

       4).运行结果截图

7-3 计算天数 (15 分)

本题要求编写程序计算某年某月某日是该年中的第几天。

1).实验代码

#include<stdio.h>

int main()

{

  int year,month,day,sum,i;

  scanf("%d/%d/%d",&year,&month,&day);

  sum=day;

  

  for(i=1;i<month;i++){

    switch(i){

      

          case 1:

          case 3:

          case 5:

          case 7:

          case 8:

          case 10:

          case 12:

          sum+=31;break;

          

          case 4:

          case 6:

          case 9:

          case 11:

          sum+=30;break;

          

          case 2:

          if((year%4==0&&year%100!=0)||year%400==0){

            sum+=29;

          }

          else{

            sum+=28;

          }

          break;

    }

  }

  printf("%d",sum);

  return 0;

}

2).设计思路

第一步:定义变量

第二步:输入变量

第三步:调用switch函数,判断月数

第四步:调用if语句判断是否为闰月

第五步:累加,输出答案

3).本题调试过程碰到的问题及解决方法

问题:输入格式错误

解决方法:按照输入样例重新输入

4).运行结果截图

 

原文地址:https://www.cnblogs.com/lmcmha/p/9972693.html