C博客作业01--分支、顺序结构

0.展示PTA总分



1.本章学习总结

1.1 学习内容总结

基本语法

库函数一些必须信息在头文件中声明
调用输入输出函数#include
调用数学函数#include
常用:
平方根sqrt(x)
绝对值fabs(x)
幂函数pow(x,n)
e为底指数函数exp(x)
以e为底的对数函数log(x)

scanf(“”)

  • 若有输入字符型变量,(例:%d%c%d),输入数据之间不能出现空格或其他字符(例:%d %c %d),否则也认定为输入的字符
    输入浮点型变量
  • double对应%lf;float对应%f(无精度控制)

printf(“”)

  • 输出浮点型变量(例%.1f保留一位小数)
  • 输出格式控制时(例:%-4d输出宽度为4长度不够后补空格)%4d前补空格
    %外原样输出;%内针对变量输出

分支结构

if-else语句

  • 字符型变量应用于if—else语句,条件中需用' '(例:if(op=='+'))
  • else后不加表达式

多分支if-else语句

  • else if后需加表达式
    C博客作业01--分支、顺序结构_第1张图片

for循环语句

  • 循环体语句若需多条用{}框起

switch语句

  • case后不能写条件只能跟常量
  • 注意break用法
    C博客作业01--分支、顺序结构_第2张图片

拓展语法

1. scanf语句吸收换行符:在字符%c前再打一个空格或在scanf前运用fflush(stdin) 2. rand()随机函数不放在头文件#include中,而是放在#include中,但每次产生的随机数组相同; srand(time(NULL))随机种子每次产生不同的随机数组,time调用函数#include

1.2 本章学习体会

  • 感受:经过两周的C语言学习,从几乎0基础的小白到能够理解基本语法及分支结构等,能够写出程序、运行程序,虽然过程有时繁杂,但C语言编程的结果确实让人十分有成就感和满足感。在学习过程中我深刻的体会到老师口中C语言就是要不断练习实践这句话的真实,真正的错误只有在打完代码后才能被揪出并深刻记忆。面对大体找不出的错误,学习运用了逐句调试,应用vs编写代码。
  • 不理解:for循环语句中空语句意义及作用,何时运用
  • 建议:面对拓展的语法知识,希望可以在vs上分别打出代码,了解实际应用
  • 代码量:(pta中除去部分语句更改)代码量大概为819(从9月1日起)

2.PTA实验作业

2.1 7-10 计算天数

2.1.1 数据处理

  • 数据表达:都为整型
  1. int year;是否闰年判断
  2. int month;月份判断
  3. int date;日期最终累加到sum中
  4. int i;累计月份判断天数
  5. int sum;累计天数总和
  • 数据处理:
    scanf输入语句;for循环语句;多分支if-else语句;printf输出语句

2.1.2 代码截图

C博客作业01--分支、顺序结构_第3张图片

2.1.3 本题可扩展功能

首先判断所输入日期是否合理后再计算天数

2.1.4 PTA提交列表及说明

  • Q1:如何处理不同月份对应相应天数
  • A1:利用分支结构,将天数相同的月份并入同一个执行条件中,并讨论闰年2月问题
  • Q2:怎样使月份逐步添加到输入数据后停止
  • A2:循环结构for(i=1;1<=digit;i++)分号隔开

2.2 7-6 出租车计价

2.2.1 数据处理

  • 数据表达:
  1. int startMileage;起步里程
  2. int startFee;起步价
  3. double mileage;(浮点型)行驶路程
  4. int waitTime;等待时间判断是否临时停车收费
  5. int fee;总费用
  • 数据处理:
    scanf输入语句;多分支if-else语句;嵌套if-else语句;printf输出语句

2.2.2 代码截图

C博客作业01--分支、顺序结构_第4张图片

2.2.3 本题可扩展功能

比拟为共享单车(或其他按公里数计费的交通工具)的收费制度

2.2.4 PTA提交列表及说明

  • Q1:刚开始不知道如何处理四舍五入问题
  • A1:应为是整型数据最终结果只能是整数,计算数据加上0.5后达到四舍五入效果
  • Q2:不及五分钟不收费问题如何表达
  • A2:输出整型数据,所经过时间/5,则不及五分钟输出结果为0

2.3 7-12 判断一个三位数是否为水仙花数

2.3.1 数据处理

  • 数据表达:
  1. int digit;输入整数
  2. int hundred;计算百位
  3. int ten;计算十位
  4. int bits;计算个位
  • 数据处理:
    scanf输入语句;多分支if-else语句;嵌套if-else语句;printf输出语句

2.3.2 代码截图

C博客作业01--分支、顺序结构_第5张图片

2.3.3 本题可扩展功能

找出三位数(或更多位数)的所有水仙花数
C博客作业01--分支、顺序结构_第6张图片

2.3.4 PTA提交列表及说明

  • Q1:比较符号应用错误
  • A1:相等为==
  • Q2:如何控制数据范围
  • A2:将变量范围大小列出每句用&&分隔

3.阅读代码

xinz
C博客作业01--分支、顺序结构_第7张图片

  • 代码理解:应用gcd函数求两个正整数最大公约数,lcm函数求最小公倍数,求两分数之和,输入为EOF时结束,没有完全理解步骤,太绕(例:n=a(m/b)+c(m/d);else n=a(m/b)-c(m/d);)
    C博客作业01--分支、顺序结构_第8张图片
  • 优点:条件判断详细,有逻辑感,多嵌套if-else语句可读性强

你可能感兴趣的:(C博客作业01--分支、顺序结构)