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语句,实现双重条件判断循环

注:有多个知识点未学,如定义变量的更多种类和符号导致某些地方无法理解。

posted @ 2019-10-07 20:55  囫囵吞了个枣  阅读(204)  评论(1编辑  收藏  举报