C语言--分支结构
一、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语言--分支结构的更多相关文章
- C语言分支结构之if else语句
前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条.第三条……一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...
- iOS学习02C语言分支结构
1. BOOL类型 返回值:真:YES 假:NO BOOL数据类型占一个字节的内存空间,占位符为%d. 计算机在识别时,YES就替换成1,NO就替换成0. bool是C语言中的布尔类型,返回值为tr ...
- iOS学习之C语言分支结构
一.BOOL类型 返回值:真:YES 假:NO 定义一个布尔类型的变量 YES == 1, NO == 0 计算机在识别时,YES就替换成1,NO就替换成0 BOOL isGirl = YES; ...
- c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)
1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...
- 【C语言学习】-02 分支结构
本文目录: 一.BOOL布尔类型 二.关系运算符 三.逻辑运算符 四.if语句 五.枚举类型 六.switch语句 一.BOOL布尔类型 BOOL数据类型,是一种表示非真即假的数据类型,布尔类型的变量 ...
- C语言第01次作业--顺序、分支结构
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周我学到了很多C语言中基础的结构和语法(见思维导图),能对一些生活中的简单问题对应编写程序解决一些这些简单 ...
- c语言第一次作业--顺序、分支结构
1.1思维导图 1.2.1本周学习体会以及代码量学习体会 1.2.2学习体会 因为在暑假时候没有对c语言进行学习,没太关注一些学习资料,一些教学视频也没看,感觉对c语言是陌生的,刚开课的时候自 ...
- c语言博客作业——顺序结构,分支结构
1.PTA截图 2.本章学习总结 2.1学习内容总结 数据的输入和输出:%d表示输入输出整数 %.lf表示输入浮点数 %.nf表示输出结果保留n位小数 if-else的分支结构可以有限个分类情况进行处 ...
- [C语言入门笔记]分支结构与数组
分支结构与数组 什么是分支结构? 分支结构是用户或者程序可以选择下一步执行哪个语句 分支结构有哪些? If If Else If Else If Switch 在初学者的学习过程中第一种和第二种比较普 ...
随机推荐
- sizeof +数组名
链接:https://www.nowcoder.com/questionTerminal/daa5422cb468473c9e6e75cc98b771de 来源:牛客网 sizeof一个数组名称的时候 ...
- bzoj3694
/* * 对于不在最短路树上的边(x, y) * 1 * | * | * t * / \ * / \ * x-----y * 考虑这样一种形态的图, ‘-’ 标记为非最短路树的边 * 对于边集(x, ...
- [Luogu] 让我们异或吧
https://www.luogu.org/problemnew/show/P2420 异或满足 A ^ B = B ^ A A ^ A = 0 0 ^ A = A #include <cstd ...
- Luogu5339 [TJOI2019]唱、跳、rap和篮球 【生成函数,NTT】
当时看到这道题的时候我的脑子可能是这样的: My left brain has nothing right, and my right brain has nothing left. 总之,看到&qu ...
- php win/linux/mac 安装redis扩展或者扩展报错 zend_smart_str.h file not found
1 windows 安装reids 扩展 根据phpinfo 查看php信息.在pecl.php.net 下载对应的redis扩展版本,放如扩展目录,在php.ini 配置扩展信息,重启服务 2 li ...
- 关于pl/sql打开后database为空的问题解决办法
前置条件:楼主是在虚拟机里面进行安装oracle和pl/sql的,所以我的安装后,发现我的pl/sql显示的database是空的,当然楼主会检查我的tnsnames.ora是不是配置正确了,但是检查 ...
- gitlab配置邮箱postfix(新用户激活邮件)
亲测可用 https://www.cnblogs.com/yoyoketang/p/10287345.html
- CF1208B
CF1208B 题意: 给出n个数字,找出最小的一端连续区间进行删除操作,使其剩余元素不含重复元素,求要删除的最小区间长度 解法: 删除子段后,前缀和后缀保持不变,可能长度为0.让我们修复不包含任何重 ...
- 新树莓派系统安装ROS记录
树莓派系统更新了,作为版本控的我怎么能忍住不更新系统,为了提高系统的速度,买了张170M的告诉sd卡,我要说的是,这个高速SD卡的钱花的最值得了,千万不要觉得树莓派都买了4,还要什么高速SD卡(自行车 ...
- tmux 入门踩坑记录
软件安装 sudo apt-get install tmux 1. 分割左右窗口 ^b -> % 运行 tmux 新建一个 tmux 的会话(session),此时窗口唯一的变化是在底部会出现一 ...
- C语言分支结构之if else语句