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 ...
随机推荐
- dump net core windbg 安装
安装 1.下载工具windbg 地址:https://www.microsoft.com/zh-cn/p/windbg-preview/9pgjgd53tn86?SilentAuth=1&rt ...
- 2019年Amazon AWS-Solutions-Architect-Professional考试最新题库(AWS SAP题库)带考试模拟器
大家好,由于最近自己备考Amazon AWS-Solutions-Architect-Professional考试,购买了以下链接的题库,并通过了考试 https://www.kaoguti.gq/A ...
- JVM性能优化--JVM参数配置,使用JMeter简单测试配合说明参数调优
一.JVM参数配置 1.常见参数配置 -XX:+PrintGC 每次触发GC的时候打印相关日志 -XX:+UseSerialGC 串行回收 -XX:+PrintGCDetails 更详细的GC日志 - ...
- 【转载】C#中List集合使用LastOrDefault方法查找出最后一个符合条件的元素
在C#的List集合中,FirstOrDefault方法一般用来查找List集合中第一个符合条件的对象,如果未查到则返回相应默认值.其实如果要查找最后一个符合条件的List集合元素对象,可以使用Las ...
- python 系统定时关机
#coding=utf-8 "shutdown at 23:00" from datetime import * import os import win32api import ...
- glfw之hello world
mac上用cocoa做imshow,资料似乎不好找,即便找到也需要和OC混编,而不是纯C.这不够纯粹.考虑用opengl做通用的.跨平台的imshow.先入门一下opengl,从glfw官方例子入手. ...
- 微信小程序转义解析渲染html
今天开发小程序时,想调用商品详情字段,发现大部分是用编辑器编辑的html原生标签,无法在小程序直接使用. 后面自己使用正则和字符串替换,效果也不佳. 最后在网上找到了wx-mina-html-view ...
- openssl获取ssl证书,配置https
- NFS服务启动:rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
nfs重启时提示: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused) 解决办法: 1 #service rpc ...
- 9、Python复杂数据类型(list、tuple、set、dict)
一.列表(list):[a1,a2],可变数据类型 1.序列: 序列是基类类型,序列扩展类型包括:字符串.元组和列表 序列都可以进行的操作包括索引,切片,加,乘,检查成员. 此外,Python已经内置 ...