C博客作业01--分支、顺序结构
1.展示PTA总分
顺序结构
分支结构
2.本章学习总结
2.1数据类型
- 整型变量:int
- 字符型变量:char
- 浮点型型变量:单精度浮点型变量float,双精度浮点型变量double。
注:对于目前基础编程的学习和练习,定义浮点型变量时由于无法准确估算出字符存储量,为避免发生错误而尽量使用double。
2.2输入与输出函数
- 首先需要一个编译预处理命令 #include<stdio.h> 来声明函数
2.2.1输入:scanf与getchar()
- scanf:输入数据时普通字符需要原样输入
输入时应根据数据类型而在“ ”内进行数据类型控制
int——%d
float——%f
double——%lf
char——%c - getchar():只能从键盘中得到一个字符
2.2.2输出:printf与putchar()
- printf:输出数据时普通字符将原样输出
不同类型数据也都需要不同的格式控制说明 - putchar():只能输出一个字符
2.3数学函数
-
首先需要一个编译预处理命令 #include<math.h> 来声明函数
-
sqrt(x):平方根函数,用于计算x的开平方;
-
pow(x,n):幂函数,用于计算x的n次方;
-
exp(x):指数函数,用于计算e的x次方;
-
fabs(x):绝对值函数,用于得到|x|;
-
log(x):以e为底的对数函数;
2.4分支结构
2.4.1if--else类型
可分为以下两种:
-
第一种
if(表达式1)
{
......
}
else if(表达式2)
{
......
}
else
{
......
}
举例:c02-选择结构第5题
-
第二种
if()
{
......
}
if()
{
......
}
if()
{
......
}
举例:c02-选择结构第9题
2.4.2 switch语句
switch (表达式)
{
case 常量表达式 :语句1;break;
case 常量表达式 :语句2;break;
case 常量表达式 :语句3;break;
case 常量表达式 :语句4;break;
default :语句5;
}
注意:break用于跳出switch语句,一般情况每个语句运行完都要加上break,若语句2执行后无break,则下列所有语句(3,4)都将运行。
总结:switch多用于有限个判断的分支选择,if--else多用于范围性的条件判断。
2.5实现目的的技巧
2.5.1控制输出数字的小数位次
%nf表示输出小数为n位
如 printf(“%3f”,变量名);则输出数据小数点为3位;
2.5.2break语句与continue语句
break可用于跳出switch和for的循环;
而continue只能跳过该语句后的部分循环体而再次进行循环;
2.6本章学习体会
通过近期的c语言基础学习,我渐渐发现了编程语言的有趣性和挑战性,它对解决问题的思维方式和寻找突破口的逻辑思维的锻炼强度很高,课本内的知识点固然重要,但知识总是死的,将其运用并且升级改造才是学习的正确方法,总之,这门学科是实践性很强的学科,只有通过自己在题目中摸索,分析,找错,总结,才有可能更上一层楼,我本人对其还是很感兴趣的,我愿意多与其“亲密接触”。
代码量:844行(不包括课上互动,不包括平时自主实践等等,只含pta)
3.PTA实验作业
3.1 c02-选择结构7-3 输出三角形面积和周长
3.1.1变量定义
用整型变量定义三角形三边a,b,c。
用浮点型变量定义三角形的面积area,周长perimeter,中间量s。
3.1.2数据处理
一个if--else结构,一个输入函数,两个输出函数。
3.1.3代码截图
3.1.4代码提交及其说明
未将最后结果进行小数点控制导致错误。
Q1:仔细一遍遍观察代码,发现是合理的,确不知道为什么结果错误。
A1:就将其进行调试。
Q2:调试过程中,中间变量的值都是正常的,结果为什么说答案出错。
A2:发现最后结果的小数点控制出现问题。
3.2 c02-选择结构 7-10 计算天数
3.2.1变量定义
定义年月日year,month,day为输入变量
定义A存储闰年和非闰年的二月天数
定义days为总天数
3.2.2数据处理
先判断是否为闰年从而确定二月天数
再用else--if来进行分支选择
3.2.3代码截图
3.2.4代码提交及其说明
Q1:代码量好多导致一些分支上的书写错误。
A1:行行查错发现了许多语法错误,如:关系符号(==写成了=)错误,进行改正。
Q2:再次提交后发现闰年部分测试点没过。
A2:发现题意没有理解,即符合两种情况都属于闰年,而我却认为只要满足一项就可以,改正分支条件后正确。
注:后来发现用switch语句可以使结果更简洁,程序运行效率更高,哭辽┭┮﹏┭┮
提交正确后发现该题应用switch语句可以使结构更简单,代码量更少。
3.3 test01--选择结构 7-1 任务06-01-07 简单计算器
3.3.1变量定义
两个整数value1,value2.
字符型变量op,用于存储加减乘除号
3.3.2数据处理
运用switch语句对加减乘除号进行区分选择,再应用if--else语句进行除数为0的判断。
3.3.3代码截图
3.3.4代码提交及其说明
Q1:部分结构错误。
A1:switch语句中遗漏了break,导致结果错误,加上后提交正确
4代码阅读
4.1代码选择: ACM 题库题解大全> poj 3752 字母旋转游戏
4.2代码要求:
4.3代码截图
4.3优点及其可学习之处
4.3.1清楚字母之前的联系在于其ASCII码顺序相差1,善于发现逻辑关系
4.3.2将while语句再嵌套一个while语句,实现双重条件判断循环
注:有多个知识点未学,如定义变量的更多种类和符号导致某些地方无法理解。