一、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. 慕课网SSM仿大众点评

      目录: 配置部分: 1 配置报错不支持diamond运算符 运行部分: 1 登录的账号密码 2 运行项目是报错session超时 配置部分 1 配置报错不支持diamond运算符 原报错信息如下:id ...

    2. learning express step(八)

      To skip the rest of the middleware functions from a router middleware stack, call next('route') to p ...

    3. setsockopt函数

      #include <sys/socket.h>     int setsockopt( int socket, int level, int option_name,            ...

    4. windows游戏编程鼠标

      ①.常用鼠标消息: WM_MOUSEMOVE           鼠标移动位置 WM_LBUTTONDOWN       鼠标左键按下 WM_LBUTTONUP             鼠标左键弹起 ...

    5. 3-2新建Photoshop图像

      http://www.missyuan.com/thread-350740-1-1.html   [CTRL N][文件 新建] 按住CTRL双击Photoshop的空白区(这个好像是打开文件){快捷 ...

    6. laotech老师唠科mac 深入浅出MAC OS X

      laotech老师唠科mac 深入浅出MAC OS X http://study.163.com/plan/planLearn.htm?id=1637004#/learn/resVideo?lesso ...

    7. 内存管理2-@class关键字

      Review: 给对象发送消息,进行相应的计数器操作. Retain消息:使计数器+1,改方法返回对象本身 Release消息:使计数器-1(并不代表释放对象) retainCount消息:获得对象当 ...

    8. python 识别图片中的汉字

      我们就识别上面的汉字. 安装软件tesseract和python库 https://www.cnblogs.com/sea-stream/p/10961580.html 然后新建一个文件夹test,把 ...

    9. java微服务简介与实战

      今年做了一段时间的可见光.ceph存储,后端开发微服务项目,在这记录点东西,也方便大家借鉴查找. springboot的项目实例:https://github.com/ityouknow/spring ...

    10. 方阵转置(c++)

      #include #include using namespace std; int main(int argc,char* argv[]) { int a[4][4]={ {0,1,2,3}, {4 ...