c博客作业01--顺序分支结构
0.展示PTA总分


1.本章学习总结
1.1 学习内容总结
1.运算符需注意的要点
- '/'的左右两边如果均为整型数,其结果也为整型;‘%’的左右两边只能为整型数;
- 优先级:逻辑运算符<关系运算符(判断是否相等的运算符比其他的关系运算符低)<算术运算符。
2.数据类型及其输入输出
数据类型:
- int(整型):输入时调用scanf()函数,格式控制说明为%d;输出时调用printf()函数,格式控制说明为%d;
- char(字符型):调用函数scanf()和printf()来输入输出字符,格式控制说明均为%c; 或者可以用getchar()来输入函数(一次只能读入一个字符),一般调用格式为:
ch=getchar(),用putchar来输出函数(一次只能输出一个字符),一般调用格式为:putchar=(ch)。 - float(单精度浮点型):调用函数scanf()和printf()来输入输出浮点数,格式控制说明均为%f;
- double(双精度浮点型):输入时调用scanf()函数,格式控制说明为%lf;输出时调用printf()函数,格式控制说明为%f;
- double和float的区别:
- 字节:float为4,double为8;
- 有效位数:float为8,double为16;
- 处理速度:float比double快;
- 数值范围:float:[-3.40E+38,+3.40E+38];double:[-1.79E+308,+1.79E+308]。
printf()函数的输出格式注意:
- 关于浮点数保留n位小数:printf("%.nf",x);
- 关于整数输出n位数,不够n位的往左补零:printf("%0nd",x);
- 指定整型的数据输出宽度为n(包括符号位),若实际位数小于n,往左(右)补空格,若大于等于n则按实际位数输出:printf("(-)%nd",x)。
3.常用数学函数(使用时需要加上头文件‘#include <math.h>’)
- 平方根函数sqrt(x):计算\(\sqrt{x}\);
- 绝对值函数fabs(x)和abs(x):计算|x|;
- 幂函数pow(x,n):计算\(x^n\);
- 指数函数exp(x):计算\(e^x\);
- 以e为底的对数函数log(x):计算lnx。
- 以上函数除了abs(x)的定义格式是整型的,其他都是double型的。
4.for语句
- 一般形式为:
for(表达式1;表达式2;表达式3)
循环体语句
5.分支结构
- 二分支结构:if else语句;
- 多分支语句:switch 语句、else if语句、嵌套的if-else语句;
- 三种语句的比较:else if语句和switch语句的逻辑结构比if else的嵌套语句更清晰,if else嵌套语句需要注意if和else的配套使用,容易出错,且运行效率较低;else if语句和switch
语句相比,switch语句的运行效率更高,但是switch的缺点是其表达式和常量表达式只能是字符型或者整型,而else if语句的表达式也可以是浮点型;
- 三种语句的比较:else if语句和switch语句的逻辑结构比if else的嵌套语句更清晰,if else嵌套语句需要注意if和else的配套使用,容易出错,且运行效率较低;else if语句和switch
6.课堂拓展:
随机数:
#include <stdio.h>
#include <stdlib.h> //是存放rand()和srand()的头文件;
#include <time.h> //是存放time(0)的头文件;
int main()
{
srand(time(0)); //生成随机种子,产生不同随机数,time(0)是返回从1970年1月1日0时0分0秒到目前为止经过的时间,单位为秒,这边用来初始化srand的起始值;
int x=rand()%100; //生成范围为[1,99]的随机数;
printf("%d",x)"
return 0;
}
1.2 本章学习体会
- 即使暑假有提前接触C语言,可是感觉学起来还是有点吃力,意识到是课后没有总结到位,无法融汇贯通,已经买好了笔记本,希望以后课后把笔记和需要注意的地方记在本子上;
- 在刷pta时感觉到逻辑思维方面还是不够好,经常思维紊乱。但是在刷题的过程中,逐渐开始找到一种乐趣,卡了很久的题目突然写出来的那一刻的开心喜悦是无法用言语来形容的!!
- 这两周的代码量为1126(距自己定的目标还差274行)代码练习还是不够!!
2.PTA实验作业
2.1计算天数 (15 分)
2.1.1 数据处理
- 数据表达:
- int year; 储存年份;
- int month;储存月份;
- int day;储存日期;
- int all;储存总天数;
- 数据处理:
运用了else if语句,将每一个月的天数自己累加起来;用月份来进行判断应该进入哪个分支。先按不是闰年的计算,最后判断是否为闰年和是否为闰年过2月再决定是否加1;
2.1.2 代码截图



2.1.3 本题可扩展功能
可以用switch语句合理运用break,可以简便很多运算,提高运行效率。
2.1.4 PTA提交列表及说明

- Q1:编译错误
- A1:这就是不用编译器写代码的下场....
- Q2:不知道判如何断闰年
- A2:闰年就是能被4整除不被100整除和能被400整除的数;
- Q1:什么时候要加1;
- A2:年份为闰年而且要过2月.
2.2简单计算器 (20 分)
2.2.1 数据处理
- 数据表达:
- int number; 储存用户输入的数;
- int all = 0; 储存计算结果;
- char symbol; 储存用户输入的运算符;
- int judge = 1; 判断是否要输出结果,为1时输出结果,为0时则不输出;
- 数据处理:
- 首先读入一个数字和一个运算符,先进入whlie循环;
- 根据用户输入的运算符进入switch语句进行选择运算;
- 如果中途遇到用户输入错误,对judge进行改值,在最后判断judge的值来决定要不要输出结果;
2.2.2 代码截图



2.2.3 本题可扩展功能
要求考虑四则运算符的优先级 (感觉这样拓展有点变态)
2.2.4 PTA提交列表及说明

- Q1:要如何避免用户输入错误时输出all的结果?
- A1:设置变量judge=1,在用户输入错误时改变judge的值,最后在输出all的结果时判断一下judge的值来决定是否输出all;
2.3任务06-02-01 于龙遇见日期,又哭了! (10 分)
2.3.1 数据处理
- 数据表达:
- int X; 储存用户输入的第一个数;
- int Y; 储存用户输入的第二个数;
- int Z; 储存用户输入的第三个数;
- char symbol1; 读取用户输入的第一个字符;
- char symbol2; 读取用户输入的第二个字符
- int year; 储存年份;
- int month; 储存月份;
- int day; 储存日期;
- 数据处理:
先判断X,Y,Z的值是否都大于12,如果是,则数据不合法。再判断X,Y,Z中最大的数,赋值给year。比较剩下两个数,如果有一个大于12,则赋值给日期,如果没有则按顺序赋值给月份,日期。再按month的值来判断,day是否超过天数;
2.3.2 代码截图





2.3.3 本题可扩展功能
对于我现在的水平来说,这已经是一道很优秀的题目了。(太难了我QAQ)
2.3.4 PTA提交列表及说明

- Q1:刚开始测试点12@12#12一直运行错误
- A1:在刚开始对X,Y,Z大小判断时,没有考虑到相等的情况,加上等号后就可以了;
- Q2:日期不合法的测试点过不了;
- A2: 只考虑到X,Y,Z大于31不合法,其实应该是三个数都大于12就不合法了,如果是大于31,某些测试点例如13.14.15就过不了;
3.阅读代码






- 3.1功能
- 对间谍输入的字符,按第一行输入的行列数进行螺旋输出,然后每个字符-7,得到间谍的信息;
- 3.2思路
- 用数组char a[20] [20]来保存字符,设置变量isRow,改变其命题的真假来进入输出数组某一行或者某一列列的分支;设置变量isOrder,改变其命题的真假来进入要正序输出数据的某一行(列),还是倒序输出。再利用循环遍历输出数组。
- 3.2优点
1.运用二维数组保存各个字符,不需要申请多个变量储存字符,减少了代码量;
2.巧妙设置两个变量isRow和isOrder,每进行完一次循环就对其命题进行取反,以此进入不同分支来输出字符;
3.用一个循环条件while (scanf("%d %d", &r, &c), r && c)来判断用户输入的r和c是否正确,以此来判断是否进入循环,如果输入错误则不进入循环直接退出程序,如果直接用scanf()函数来输入,用户输入错误时,程序依旧会运行,可能导致程序崩溃;
c博客作业01--顺序分支结构的更多相关文章
- c博客作业01——顺序 分支结构
本章学习总结 1.1 学习内容总结 ·学习switch分支的使用,switch后加括号(),括号内填一个变量或字符 如 switch (a) { case 2: case 3: default: } ...
- C博客作业00--顺序分支结构
这个作业属于哪个班级 C语言--网络2011/2012 这个作业的地址 C博客作业00--顺序分支结构 这个作业的目标 初步认识C语法,掌握数据表达.printf.scanf语法及分支结构内容 0.展 ...
- C博客作业01——分支,顺序结构
C博客作业01--分支,顺序结构 0.展示PTA总分 1本章学习内容 1.1学习内容总结 1)格式化输出函数printf(),scanf(). 它是什么? 对于初学者而言,一开始了解接触它们,只是被硬 ...
- C语言I博客作业01
C语言I博客作业01 作业1 这个作业属于哪个课程? C语言程序设计I 这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homewo ...
- C博客作业01——分支、顺序结构
1.本章学习总结 1.1思维导图 本章学习体会及代码量学习体会 1.2.1学习体会 在暑假的时候就有加入新生学习群,对C语言有一定的基础,所以这周的学习相对轻松,但一些细节方面的知识并不是很了解.在这 ...
- c语言博客作业01—分支、顺序结构
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 这周 对c语言的学习 明显与其他同学相比较有些滞后,觉得很大原因是暑假没有看教学视频,课前没有预习课本 ...
- C博客01--顺序、分支结构
1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 经过一周的初步学习,对C语言我有了一定的认识,也体验到了代码的乐趣,这应该为我以后的学习开了一个好头.在 ...
- C语言l博客作业01
2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样?(2分) 计算机科学与技术是国家一级学科,下设信息安全,软件工程,计算机软件与理论等专业,主要培养符合教育部门实际需要的计算机教学及应用管理 ...
- C语言II博客作业01
这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-4 这个作业要求在哪里 https://edu.cnblogs.com/campus/zs ...
随机推荐
- 高并发场景下System.currentTimeMillis()的性能问题的优化
高并发场景下System.currentTimeMillis()的性能问题的优化 package cn.ucaner.alpaca.common.util.key; import java.sql.T ...
- 2019 苏宁控股java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.苏宁等公司offer,岗位是Java后端开发,因为发展原因最终选择去了苏宁,入职一年时间了,也成为了面试官,之 ...
- 【开发工具】- 推荐一款好用的文本编辑器[Sublime Text]
作为一个程序员除了IDE外,文本编辑器也是必不可少的一个开发工具.之前一直在用的是NotePad++.EditPlus,这两款编辑器,但是总感觉差点什么,昨天在知乎上看到有人推荐Sublime Tex ...
- vue学习(1) vue-cli 项目搭建
vue学习(1) vue-cli 项目搭建 一.windows环境 1. 下载node.js安装包 官网:https://nodejs.org/en/download/ 选择LTS下载 2. 安装 ...
- requests模块 高级应用
目录 requests模块 高级应用 HttpConnectinPool 问题解决 IP代理 简单使用代理 代理池 cookie的处理 页面中验证码识别 使用 multiprocessing.dumm ...
- Html-元素类型笔记
注意点: 元素类型分为 块级元素 和 行内元素 块级元素: 在网页中以块的形式显示,默认情况都会占据一行,两个相邻的块级元素不会出现并列显示的元素,按照顺序自上而下排列. 块级元素可以定义自己的宽度和 ...
- c# 泛型study
1.引用类型约束: 类型实参包含任何类,接口,数组,委托,或者是已知是引用类型的另一个类型参数 class demo<T> where T:class 有效的封闭区间demo<St ...
- iManager微服务自定义上传数据的两种方法
背景 当数据量大时,通过浏览器上传可能速度较慢,可以使用以下两种方式进行数据导入. 方法一 1.访问k8s主页(31234端口) 找到所创建的微服务的命名空间(例如icloud-native-xxx) ...
- session有效期设置的两种方式
/**session有效期设置的两种方式: * 1.代码设置:session.setMaxInactiveInterval(30);//单位:秒.30秒有效期,默认30分钟. * 2.web.xml中 ...
- ZMQ应用
一. ZeroMQ概述 ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型.连接处理.帧.甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字.ZeroMQ是网络通信中新的一层,介于应 ...