代码改变世界

分支和顺序结构

2019-10-06 18:21  pluto1214  阅读(397)  评论(0编辑  收藏  举报

*0.PTA总分

1.本章学习总结

1.1学习内容总结

1.一个程序只能有一个main()函数,程序从这开始运行
2.对变量使用前必须先定义,例如int x
3.int储存整形数据,float和double储存浮点型数据,对应的输入格式分别为scanf("%d",&变量) scanf("%f",&变量) scanf("%lf",&变量)
4.调用数学函数时先声明# include<math.h>
5.常用的数学函数有平方根函数sqrt(x),绝对值函数fabs(x),幂函数pow(x),指数函数exp(x),以e为底的对数函数log(x)等
6.调用输入输出函数要用#include<stdio.h>
7.if-else语句中if后要用关系表达式,不能用赋值表达式。例如if(x=2)是错误的,if(x2)是正确的
8.if-else语句中else后面不能加关系表达式
9.if和else语句后只允许接一条语句,若有多条语句,要用大括号括起来
10.字符型变量在定义时用char,且在调用时的格式控制说明为%c,scanf("%c",&ch);
11.getchar()有且只能读入一个字符,putchar()可以输出一个字符
12.逻辑表达式的使用:
if(a
b&&ac) if(ab||a==c)

1.2学习体会

1.2.1由于计算机基础薄弱,刚开始入门的时候比较困难,难以理解程序的执行,刚开始打代码时照着课本打,随着打码量的增多,感觉能够理解了。做一些简单的题目时也比较能够得心应手,但碰到难题时就会出现许多错误,比如语法错误。
1.2.2PTA上的布置的题目有450行代码,加上自己做PTA的30多道题目600行代码和新做的循环题,总共有1400多行代码

2.PTA实验作业

2.1三个数由小到大输出

2.1.1数据处理

数据表达:定义了a,b,c,x,y,z六个变量,x,y,z是题目要求的变量,a,b,c为输入的三个数,都为整型变量
数据处理:用逻辑表达式进行判断条件和嵌套的if-else语句

2.1.2代码图


2.1.3提交列表和说明


只一次提交就成功了,这题刚开始思路很乱,于是我把整个题目过程写在纸上修改,发现思路在写的过程中理顺了很多

2.2计算天数

2.2.1数据处理

数据表达:定义了month,year,day,day1四个变量,都为整型变量,考虑到可能有当月还不到满的情况,用day1来储存,例如2019/10/1,则day1=1
数据处理:还是采用if-else语句,逐个条件判断计算

2.2.2代码图


2.2.3提交列表和说明


编译错误是由于scanf中经常忽略变量前要加&,答案错误是由于这题我用数学规律来答,发现当月份为奇数时,31天的月份数=(当月月份-1)/2,30天的月份数=(当月月份-3)/2;月份为偶数时,31天月份数=当月月份/2,30天月份数=(当月月份-4)/2,在发现规律过程中有错误,导致答案错误

2.3正负数个数

2.3.1数据表达和处理

数据表达:定义了变量i,j分别储存正数和负数的个数
数据处理:用while语句对每次输入的数进行判断并用break跳出语句

2.3.2代码图


2.2.3扩展

不仅可以用来计算整数和负数的个数,也可用来计算大于任意数的个数,可将条件改为(number>a)或是计算闰年个数,可将条件改为if((number%40&&number%100!=0)||(number%1000))

2.3.4提交列表和说明


答案错误是由于没有在循环语句中输入scanf("%d", &number);导致无法输入多个数,编译错误是由于经常输错scanf格式,在vs调试中发现

3.阅读代码


该代码目的是计算一个输入整数的位数和个位数相加之和,计算一个整数的位数时可以让该整数不断除10,并加上循环语句while,当该数最后一次除10等于0时,循环结束。也学到了n=n/10可以简写成n/=10的形式,其他计算类似。