一、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. HR# 5题解

      T1 我傻了 前20个数暴力开桶记录,后面的每次暴力统计. #include<bits/stdc++.h> #define R register int using namespace s ...

    2. 利用chrome console批量下载文件

      因工作需要,需要定期从某页面下载多个文档,是体力活. 想用chrome扩展,找了几个不行.原因是: 1.有的扩展识别不了链接,因为链接是形如:jsp?XXX=XXX的形式 2.有的扩展能批量打开链接, ...

    3. ps/top

      ps -e 显示所有进程,环境变量 -f 全格式显示 -a 显示所有用户的所有进程(包括其他用户) -u 按用户名和启动时间的顺序显示进程 -x 显示无控制终端的进程 -w 显示加宽可以显示较多信息 ...

    4. Python中greenlet和gevent使用示例

      目录 greenlet示例 示例1,线程切换 示例2 gevent 示例1 示例2: gevent使用monkey对所有系统自带的IO操作打patch 示例3,发送请求 示例4:使用gevent的so ...

    5. python 获取主机名称和ip地址

      python2.7 #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - # This program is ...

    6. sublime的一些记录

      { "keys": ["tab"], "command": "reindent", "context" ...

    7. httpd Apache服务

      TCP/IP协议 跨Internet的主机间通讯 在建立通信连接的每一端,进程间的传输要有两个标志: IP地址和端口号,合称为套接字地址 socket address 客户机套接字地址定义了一个唯一的 ...

    8. Sql中truncate,delete以及drop的比较

      相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. t ...

    9. C#问答题与附解收集(三)

      post.get的区别 答: GET把参数包含在URL中,POST通过request body传递参数.GET请求在URL中传送的参数是有长度限制的,而POST没有.使用post提交的页面在点击[刷新 ...

    10. 005-多线程-锁-JUC锁-LockSupport【使用、Unsafe、对比Object的wait、底层源码】

      一.概述 在Java多线程中,当需要阻塞或者唤醒一个线程时,都会使用LockSupport工具类来完成相应的工作.LockSupport定义了一组公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能 ...