zoukankan      html  css  js  c++  java
  • 第四次作业

    题目7-1,计算分段函数
    1,实验代码

       #include <stdio.h>
    int main(){
      double x,result;
      scanf("%lf",&x);
      if(x!=0)
        result = 1/x;
      else
        result = 0;
      printf("f(%.1f) = %.1f
    ",x,result);
      return 0;
      } 
    

    2,设计思路
    <1>第一步
    第二步:明确double型需要在scanf中定义%lf,再用到if else的基本语句。
    第三步:编译运行,符合题目要求。
    <2>流程图:

    3,本题调试过程中遇到的问题及解决方法
    错误截图:
    不知道double型是需要用%lf来定义的,在这个题目上也浪费了许多时间去找错误,才发现是把l打成了1,感觉这不应该是能力问题,上课有提到过,没注意听,导致了这次的失误,在同学的帮助下才改正过来。

    题目7-2,A除以B
    1,实验代码

    #include <stdio.h>
    int main(){
    	int a,b;
    	double c;
    	scanf("%d %d",&a,&b);
    	c = (double)a/b;
    	if (b>0)
           	printf ("%d/%d=%.2f",a,b,c);
    	else if(b<0)
    	     printf ("%d/(%d)=%.2f",a,b,c);
    	else
          	printf ("%d/0=Error",a);
    	return 0;
    }
    

    2,设计思路
    <1>第一步:写出基本框架。
    第二步:定义两个变量,注意保留两位小数是%.2f,运用有多种选择的if else的写法,在printf中按题目要求计算式子的形式。
    第三步:编译运行,看是否有要求的/,没有就继续添加,完成该题。
    <2>流程图

    3,本题调试过程中遇到的问题及解决方法
    错误截图:
    还是浮点型的问题,直到这里才弄明白,double定义双精度,比float更为准确。

    题目7-6
    1,实验代码

    #include<stdio.h>
    int main()
    {
      float A,B;
      scanf("%f",&A);
      if(A<=50&&A>0){
         B=A*0.53; 
         printf("cost = %.2f",B);}
      else if(A>50){
         B=(A-50)*(0.53+0.05)+50*0.53;
         printf("cost = %.2f",B);}
      else
         printf("Invalid Value!");
      return 0;
    }
    

    2,设计思路
    <1>第一步:写出基本框架。
    第二步:定义一个变量A,写出它的范围,用B去乘题目要求的0.53,然后使用if else编译语句,写出50后每千瓦的电费,用超出的部分加上固定的部分,再用else结尾写出另一个条件。
    第三步:编译运行,符合题意。
    <2>流程图:

    3,本题调试过程中遇到的问题和解决方法。
    本题在这次作业中应该是最简单的一道,没有出现什么问题,但我发现一个有趣的现象。当小数点最后一个数字为0的时候,无论是用double还是float去定义数的精确度,在后面%.2f不变的条件下,输入的结果都是对的。我不知道这算不算一种巧合,我希望老师在看到后可以给予我改正,在这里先谢谢老师了。
    两次的截图:

    题目7-7出租车计价
    1,实验代码

    #include<stdio.h>
    int main()
    {
      int C;
      float A,B;
      scanf("%f %d",&A,&C);
      if(A<=3&&C<5)
         B=10;
      else if(A<=3&&C>=5)
         B=10+C/5*2;
      else if(A>3&&A<=10&&C<5)
         B=(A-3)*2+10;
      else if(A>3&&A<=10&&C>=5)
         B=(A-3)*2+10+C/5*2;
      else if(A>10&&C<5)
         B=24+(A-10)*3;
      else if(A>10&&C>=5)
         B=24+(A-10)*3+C/5*2;
      printf("%.0f",B);
      return 0;
    }
    

    2,设计思路
    <1>第一步:写出基本思路
    第二步:此题是比较麻烦的一题,有很多种情况,需要先定义一个基本的分钟数,为整数,因为是在五分钟以下统一标准,故可以以五为分界点来讨论,不要去定义float类型的小数。
    第三步:里程必须用float去定义,额外的B就是用来计算费用,一共有六种情况。
    1,里程<=3,停车时间<=5。
    2,里程<=3,停车时间>5。
    3,3<里程<=10,停车时间<=5。
    4,3<里程<=10,停车时间>5。
    5,里程>10,停车时间<=5。
    6,里程>10,停车时间>5。
    第四步:编译运行,符合题意。
    <2>流程图:

    3,本题调试过程中遇到的问题和解决方法。
    错误截图:
    这题主要是四舍五入的问题没有注意,在结尾的printf运用了%d,导致了输出的结果全是0。经过这次的教训,知道了%.0f是四舍五入的意思。

    要求三:上传git截图和地址
    截图:


    地址:
    https://git.coding.net/WP2017024114/test.git

    4,总结学习内容
    1,本周学到了浮点型数据有单精度浮点型(float)和双精度浮点型(double),基本上学会了if else在现阶段的掌握,但是对于switch的语句还是不理解,对于语句断n+1;后加break的方式不知道怎么操作,希望老师可以给予我一些指点。
    2,对于符号常量写#define PRICE 数值 ,在结尾不加return 0;的这种结构,写出来编译运行后,我不知道可不可以自己输入数据,以下附上截图。

    截图中的300是自己弹出来的,我想问一下我可以不可在代码中改变什么东西,可以我自己输入一个数据,然后出结果。

    折线图和表格

    点评三个同学的博客
    第一位陈盈驰:http://www.cnblogs.com/1999-cyc/p/7735327.html
    第二位汪志恒:http://www.cnblogs.com/wangzhiheng/p/7739423.html
    第三位舒鹏:http://www.cnblogs.com/shupeng521/p/7732034.html

  • 相关阅读:
    20172318 2017-2018-2 《程序设计与数据结构》第5周学习总结
    20172318 2017-2018-2 《程序设计与数据结构》第4周学习总结
    20172318 2017-2018-2 《程序设计与数据结构》实验1报告
    20172318 《程序设计与数据结构》第三周学习总结
    20172318 2017-2018-2 《程序设计与数据结构》第2周学习总结
    20172318 2016-2017-2 《Java程序设计》第一周学习总结
    寒假作业03
    寒假作业02
    20172311 2017-2018-2 《程序设计与数据结构》第五周学习总结
    20172311 《程序设计与数据结构》第四周学习总结
  • 原文地址:https://www.cnblogs.com/WeiPeng-wuban/p/7731933.html
Copyright © 2011-2022 走看看