• C语言的第二次作业


    一.PTA实验作业

    题目1. 计算分段函数

    本题目要求计算下列分段函数f(x)的值:

    1.本题代码

    #include<stdio.h>
    #include<math.h> 
    int main (void)
    {
    	double x,y;
    	
    	scanf("%lf",&x);
    	if(x>=0){
    		y=sqrt(x);
    	}
    	else{
    		y=(x+1)*(x+1)+2*x+1/x; 
    	}
    	printf("f(%.2f) = %.2f
    ",x,y);
    	return 0;
    }
    

    2.设计思路

    • 第一步:定义两个浮点型分别代表x,y
    • 第二步:利用if语句判断x所属于的范围,从而判断接下来进行的语句
    • 第三步:利用数学函数进行运算
    • 第四步:根据题目要求,输出保留两位小数的结果

    3.本题调试过程中碰到的问题以及解决方案

    4.本题PTA实验结果展示

    题目2.7-4 输出三角形面积和周长

    本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。
    三角形面积计算公式:area=√s(s−a)(s−b)(s−c) ,其中s=(a+b+c)/2。

    1.本题代码

    #include<stdio.h>
    #include<math.h>
    int main (void)
    
    {
    	int a,b,c;
    	double area,perimeter,s;
    	
    	scanf("%d%d%d",&a,&b,&c);
       
    	
    	if((a+b>c)&&(a+c>b)&&(b+c>a)){
        	s=(a+b+c)/2.00;
            area=sqrt(s*(s-a)*(s-b)*(s-c));  
            perimeter=a+b+c;
    	    
     	    printf("area = %.2f; perimeter = %.2f",area,perimeter);
    		
     }
        else {
    	
     	    printf("These sides do not correspond to a valid triangle");
    }
        return 0;
    }
    
    

    2.设计思路

    • 第一步:定义三个整型变量代表三角形的三条边,定义两个浮点型变量代表三角形的面积和周长
    • 第二步:判断三条边是否可以构成三角形,从而判断接下来进行的语句
    • 第三步:利用公式计算出周长和面积
    • 第四步:按照题目要求保留两位小数输出结果

    3.本题调试过程中碰到的问题以及解决方案

    (1)答案错误

    • 错误:题目要求保留两位小数,在计算面积时语句“s=(a+b+c)/2.00”,中的2没有增加小数位数导致结果输出为整数不符合题目输出答案要求。
    • 解决方案:通过问同学,以及自己的多次调试,翻阅课本,找到错误点

    4.本题PTA实验结果展示

    题目3.7-6 出租车计价

    本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
    起步里程为3公里,起步费10元;
    超起步里程后10公里内,每公里2元;
    超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
    营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

    1.本题代码

    #include<stdio.h>
    int main(void)
    {
       int time,C;
       double mil,cost1,cost2,cost;
       scanf("%lf%d",&mil,&time);
       if(0 <= mil&&mil <= 3){
           cost1=10;
    }
       else if (3<mil&&mil<=10){ 
    	   cost1 = (mil-3) * 2+10;
    }
       else if(10<mil){
    	   cost1=24+(mil-10)*3;
    }
       if(0<=time&&time<5){
    	cost2=0;
    } 
       else {
    	cost2=(time/5)*2;
    }
    
        cost=cost1+cost2;
        C=(int)(cost+0.5) ;
        printf("%d",C);
     
        return 0;
    	
    }
    
    

    2.设计思路

    • 第一步:定义六个变量 mil,cost1,cost2,cost; time,C分别用于存放路程,行驶时的费用,停车时的费用,总费用,四舍五入后的总费用
    • 第二步:输入里程数和停留的时间
    • 第三步:利用if else if语句对mil 和 time的范围进行判断接下来进行的语句,
      如果mil小于3,则cost1=10,
      如果mil大于3小于10,则cost1= (mil-3) * 2+10
      如果mil大于10,则 cost1=24+(mil-10)*3
      如果time小于5,则cost2=0
      如果time大于5,则cost2=(time/5)*2
    • 第四步:cost=cost1+cost2
    • 第五步:对cost进行四舍五入得到C
    • 第六步:输出C

    3.本题调试过程中碰到的问题以及解决方案

    (1)部分正确

    • 错误:对题目理解有误,以为“超起步里程后10公里内,每公里2元”是指行驶13公里后
    • 解决方案:请教同学,理解题意

    (2)答案错误

    • 错误:没有使用四舍五入语句,不会使用四舍五入语句
    • 解决方案:上网百度

    4.本题PTA实验结果展示

    题目2.7-8 程序设计联考

    自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后,举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后,联考工作得到了很多学校的认可和支持。所以,现在参与联考的学校比较多。为了便于区分考生,考生账号的第一位是学校代号。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。 请编写程序根据考生的账号区分考生的学校。

    1.本题代码

    
    #include<stdio.h>
    int main (void)
    {
    	int F,N;
    	scanf("%d",&N);
    
    	F=N/100000;
    	switch(F) {
    	  case 1 :
    		printf("Hunan Agricultural University");
    		break;
              case 2 :
    		printf("Jishou University");
    		break;
    	  case 3 :
    		printf("Huaihua University");
    		break;
    	  case 4 :
    		printf("Aerospace University");
    		break;
    	  case 5 :
    		printf("Ocean University");
    		break;
    	  default: 
    		printf("Other University");
    		break;
    	}
    
       
    	return 0;
    	
     } 
    
    

    2.设计思路

    • 第一步:定义两个整型变量N,F分别用于储存学号和学号的首位数
    • 第二步:利用整型数除以整型得到整型的原理,用N/100000得到学号的首位数即F
    • 第三步:使用用switch语句,当F=1输出“Hunan Agricultural University”,
      当F=2时输出“Jishou University
      当F=3时输出“Huaihua University
      当F=4时输出Aerospace University
      当F=5时输出Ocean University
    • 第四步:如果都没有,就输出Other University

    3.本题调试过程中碰到的问题以及解决方案

    (1)switch语句使用错误

    4.本题PTA实验结果展示

    二.截图本周题目集的PTA提交列表及最后排名

    三,本周的学习总结

    1.你学会了什么?

    • 1,整型的输出格式控制说明%md,指定了数据的输出宽度为m(包括符号位),若输入的实际位数小于m,则左端补空格,若大于m,则按实际位数输出,实型数据的输出格式控制说明%m.nf,指定了输出浮点型数据保留n位小数。
    • 2.for循环语句:for(表达式1;表达式2;表达式3)。
    • 3.多分支结构else-if语句。
    • 4.字符型变量在定义时用类型名char。
    • 5.switch语句中如果不使用break,当表达式的值与之相匹配时,不但执行相应的语句段,还按序执行后面的所有语句段。

    2.本周的内容你还不会什么?

    • 1.switch语句和其他语句的配合使用,如与if语句。
    • 2.不会使用dev的调试,或者说还不习惯自我调适寻找到问题。

    3.你碰到什么困难,打算如何解决?

    • 1.习惯性得漏掉&符号,直到程序运行显示无法运行时才反应过来

    • 解决方法:在程序运行前再检查一下

    • 2.在做到一些熟悉的题目时会找课本里的例题进行改变,如果没有看书,会漏掉一些细节导致编程错误

    • 解决方案:增加相应题目的练习量,逐渐摆脱课本

  • 相关阅读:
    odoo12安装Wkhtmltopdf打印出pdf已损坏
    odoo10实现单点登陆绕过登陆集成页面
    odoo添加顶部按钮实现自定义方法
    odoo t标签用法
    C#编写dll进行sql server数据库扩展储存过程
    小程序生成二维码(使用binarywang封装的微信工具包)
    -bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory 错误解决方案
    过滤器跟拦截器的区别
    mybatis-DATE_FORMAT() 时间格式化,所对应的时间格式
    解决 MyBatis-Plus 更新对象无法设空值
  • 原文地址:https://www.cnblogs.com/Zeng99/p/7724746.html
Copyright © 2020-2023  润新知