一、PTA实验作业

题目1:7-1 计算分段函数[2]

1.实验代码

    float  x, y;
printf("Enter x:\n");
scanf("%f", &x);
if(x>=0)
{
y=sqrt(x);
}
else
{
y=pow(x+1,2)+2*x+1.0/x;
}
printf("f(%.2f)=%.2f", x, y);
return 0;

2.设计思路

  • 1、定义两个浮点型变量x与y分别表示自变量与函数值;
  • 2、输入x;
  • 3、判断x>=0是否为真,是则 y=sqrt(x),否则y=pow(x+1,2)+2*x+1.0/x;
  • 4、按照要求的输出格式输出 x 与 y

3.本题调试过程碰到问题及解决办法

  • 问题1:使用pow()函数时,将参数位置写反了,把指数写在了底数的位置,底数则写成了指数,导致计算结果出错。

解决方法:发现在计算x>=0的情况时,计算无误,所以把错误定位在x<0的情况,由于是纯计算题,变量的类型定义也没有问题,所以确定问题出在计算x的表达式上。计算语句只有一条,所以没有调试,直接检查表达式后发现是写pow()函数时将参数位置写反,改正后运行程序,得到正确结果。

4.本题PTA提交列表

题目2:7-4 输出三角形面积和周长

1.实验代码

    int   a, b, c;
float s, area, perimeter;
printf("Enter a、b、c:\n");
scanf("%d%d%d", &a, &b, &c);
if(a+b<=c||a+c<=b||b+c<=a)
{
printf("These sides do not correspond to a valid triangle\n");
}
else
{
s=(float)(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area = %.2f; perimeter = %.2f\n",area, perimeter);
}
return 0;

2.设计思路

  • 1、定义3个整型变量a,b,c表示三角形的三条边长,定义3个浮点型变量s,area和perimeter分别表示计算面积要用到的替代变量、面积、周长;
  • 2、输入a,b,c;
  • 3、如果a+b<=c||a+c<=b||b+c<=a,输出"These sides do not correspond to a valid triangle",否则s=(a+b+c)/2;
  • 4、area=sqrt(s(s-a)(s-b)*(s-c));
  • 5、perimeter=a+b+c;
  • 6、按要求输出area、perimeter

3.本题调试过程碰到问题及解决办法

没有遇到问题。

4.本题PTA提交列表

题目3:7-6 出租车计价

1.实验代码

    float  Mileage, WaitExp, Dricost;
int WaitTime;
scanf("%f%d", &Mileage, &WaitTime); if(WaitTime>0&&WaitTime<5)
{
WaitExp=0;
if(Mileage>0&&Mileage<=3)
{
Dricost=10;
}
else if(Mileage>3&&Mileage<=10)
{
Dricost=10+((Mileage-3)*2);
}
else if(Mileage>10)
{
Dricost=24+(Mileage-10)*3;
}
} else if(WaitTime>=5)
{
WaitExp=(WaitTime/5)*2;
if(Mileage>0&&Mileage<=3)
{
Dricost=10;
}
else if(Mileage>3&&Mileage<=10)
{
Dricost=10+((Mileage-3)*2);
}
else if(Mileage>10)
{
Dricost=Dricost=24+(Mileage-10)*3;
}
}
printf("%.0f", WaitExp+Dricost);
return 0;

2.设计思路

  • 1、定义3个浮点型变量 Mileage, WaitExp, Dricost分别表示行驶路程、等待费用和行驶费用,定义一个整型变量WaitTime表示等待时间;

  • 2、若0<WaitTime<5,0<Mileage<=3,则WaitExp=0,Dricost=10;

  • 3、若0<WaitTime<5,3<Mileage<=10,则WaitExp=0,Dricost=10+((Mileage-3)*2);

  • 4、若0<WaitTime<5,Mileage>10,则WaitExp=0,Dricost=24+(Mileage-10)*3;

  • 5、若WaitTime>=5,0<Mileage<=3,则WaitExp=(WaitTime/5)*2,Dricost=10;

  • 6、若WaitTime>=5,3<Mileage<=10,则WaitExp=(WaitTime/5)2,Dricost=10+((Mileage-3)2);

  • 7、若WaitTime>=5,Mileage>10,则WaitExp=(WaitTime/5)2,Dricost=24+(Mileage-10)3;

  • 8、输出WaitExp+Dricost

3.本题调试过程碰到问题及解决办法

  • 问题1:这一题在编写C语言的过程没有问题,拿到题目后思考了一下确定切入点是等待时间,然后分等待时间小于或等于五分钟和大于五分钟两种情况切入选择条件。遇到问题是在寻找计算关系时,就是计算当等待时间大于五分钟,形式路程超过十公里时的行驶费用时不怎么能理解题目的意思,草稿纸上算了几遍才得到一个算式能算出答案,此间还寻求了室友帮助(我觉得这是数学问题了

    C语言--分支结构的更多相关文章

    1. C语言分支结构之if else语句

      前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条.第三条……一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...

    2. iOS学习02C语言分支结构

      1. BOOL类型 返回值:真:YES  假:NO BOOL数据类型占一个字节的内存空间,占位符为%d. 计算机在识别时,YES就替换成1,NO就替换成0. bool是C语言中的布尔类型,返回值为tr ...

    3. iOS学习之C语言分支结构

      一.BOOL类型 返回值:真:YES   假:NO 定义一个布尔类型的变量 YES == 1, NO == 0 计算机在识别时,YES就替换成1,NO就替换成0 BOOL isGirl = YES; ...

    4. c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)

      1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...

    5. 【C语言学习】-02 分支结构

      本文目录: 一.BOOL布尔类型 二.关系运算符 三.逻辑运算符 四.if语句 五.枚举类型 六.switch语句 一.BOOL布尔类型 BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量 ...

    6. C语言第01次作业--顺序、分支结构

      1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周我学到了很多C语言中基础的结构和语法(见思维导图),能对一些生活中的简单问题对应编写程序解决一些这些简单 ...

    7. c语言第一次作业--顺序、分支结构

      1.1思维导图 1.2.1本周学习体会以及代码量学习体会 1.2.2学习体会     因为在暑假时候没有对c语言进行学习,没太关注一些学习资料,一些教学视频也没看,感觉对c语言是陌生的,刚开课的时候自 ...

    8. c语言博客作业——顺序结构,分支结构

      1.PTA截图 2.本章学习总结 2.1学习内容总结 数据的输入和输出:%d表示输入输出整数 %.lf表示输入浮点数 %.nf表示输出结果保留n位小数 if-else的分支结构可以有限个分类情况进行处 ...

    9. [C语言入门笔记]分支结构与数组

      分支结构与数组 什么是分支结构? 分支结构是用户或者程序可以选择下一步执行哪个语句 分支结构有哪些? If If Else If Else If Switch 在初学者的学习过程中第一种和第二种比较普 ...

    随机推荐

    1. InputStreamReader 和 FileReader联系与区别

      两者关系: FileReader继承自InputStreamReader : 区别: InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字 ...

    2. pat 甲级 1057 Stack(30) (树状数组+二分)

      1057 Stack (30 分) Stack is one of the most fundamental data structures, which is based on the princi ...

    3. Hihocoder #1142 : 三分·三分求极值

      1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一个 ...

    4. linux中fork--子进程是从哪里开始运行

      转自  http://blog.csdn.net/koches/article/details/7787468 fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值 ...

    5. oracle中查询某个库中所有的表以及所占的表空间大小

      1. 查某一用户下的表select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||'M' from USER_extents where SEG ...

    6. Mac下持续集成-与JMeter与Ant执行后自动发送邮件的整合(性能报告)==

      配置信息如下,其他的为默认的: 添加性能测试报告后,性能测试报告部分构件失败:

    7. ELK的安全解决方案 X-Pack(1)

      安装 X-Pack 前必须安装 elasticsearch. Kibana.logstash,因为之前安装ELK选择的版本都是5.4.1,所以这次选择X-Pack的版本也要是5.4.1的 第一步:下载 ...

    8. C++ replace replace_if replace_copy replace_copy_if

      #include <iostream>#include <list>#include <algorithm>#include <iterator>#in ...

    9. Qt编写安防视频监控系统3-通道交换

      一.前言 最开始写通道交换的功能的时候,走了很多弯路,比如最开始用最初级的办法,触发交换的时候,先关闭视频,然后设置新的url重新打开视频,这样处理非常低级而且耗内存还卡还很慢,毕竟重新打开视频都需要 ...

    10. spring boot入门学习---1

      1.maven配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...