【教程】Typora+PicGo+阿里云OSS搭建博客图床(超详细)
如果你想搭建一个和本站类似的个人博客,那就需要图床来辅助 [TOC] 为什么要搭建博客图床? 以CSDN为例,我们可以选择使用大部分blog平台通用的markdown语法进行博客创作 虽然CSDN自带的编辑器已经能满足我们95%的写作需求 但是Typora在markdown语法编辑上能给你提供更好的写作体验 所以我选择了以Typora+Picgo+图床的方式来进行博客创作 而在本地的markdown文件.md中,图片是以“外链”这一形式存在的 Office...
【C语言】浮点数在内存中的存储(详解)
[TOC] 引言 本文首发于 ❄️慕雪的寒舍 markdown语法小知识点 写在前面,markdown语法的小知识点 如何实现文字变红且加上了底色?如hello world markdown语法如下即可! 1`hello world` 以及页内跳转 12<span id="jump">这一句话没啥用</span>[回到开头](#jump) 正题 之前学习完了整形、字符类型在内存中的存储,今天让我们来看看float类型! 整数类型👉【int】 字符类型👉【char】 常见的浮点数 123.141591E10 浮点数家族包括float、double、long double 类型。 而浮点数表示的范围是在头文件<float.h>里面定义的。 需要了解的是 如果你打出3.14,编译器默认是double类型的。若想让他为float类型,则要在前面加f; 1E10是科学计数法,代表1.0×10^10 代码引例 先来看看下面这串代码 1234567891011int main(){ int n = 9; ...
【C语言】char类型如何在内存中存储?
@[toc] 引子 上篇博客向大家介绍了int类型在内存中的存储方式【链接】 本篇博客我们继续往后,看看整形家族里的char类型是如何在内存中存储的吧! char类型 字符类型包括以下两种形式 unsigned char 无符号 signed char 有符号 用一个简单的printf来看看它们在打印上的区别 12345678910#include<stdio.h>int main(){ char a=-1; signed char b=-1; unsigned char c=-1; printf("a=%d b=%d c=%d\n",a,b,c); return 0;} 打印结果为 1a=-1 b=-1 c=255 这里我们可以得出两个结论 1.在VS编译器下,char默认为signed char 2.unsigned...
【C语言】unsigned无符号类型运用的两个实例
@[toc] 前排提醒😂 本篇博客是对下一篇博客《char类型在内存中的存放》的拓展 并非对unsigned类型的详解! 示例1 123456789#include <stdio.h>int main(){ int i=-20; unsigned int j=10; printf("%d\n",i+j); return 0; } 当有符号类型和无符号类型相加的时候,编译器是怎么处理的呢? 12310000000 00000000 00000000 00010100 -20的原码11111111 11111111 11111111 11101011 反码11111111 11111111 11111111 11101100 补码 100000000 00000000 00000000 00001010 10的补码 -20的补码和10的补码 相加 12311111111 11111111 11111111 11110110 得到的补码11111111 11111111...
【C语言】整型数据在内存中的存储(详解)
[toc] 数据类型 我们知道,C语言中有很多不同的数据类型 在cppreference.com网站上可以找到C语言中的不同类型【链接】 先来认识一个不那么常见的类型 布尔类型 C99中引入了布尔类型 _Bool 实质:把1和0变成ture和false 1234567891011#include<stdbool.h>int main(){ _Bool flag = true; if(flag) { printf("hehe\n"); } return...
【C语言】整型提升和算术转换
[toc] 整型提升 要想知道什么是整型提升,那就要从表达式求值说起 表达式求值 表 达 式 求 值 的 顺 序 一 部 分 是 由 操 作 符 的 优 先 级 和 结 合 性 决 定 同 样,有 些 表 达 式 的 操 作 数 在 求 值 的 过 程 中 可 能 需 要 转 换 为 其 他 类 型 什么是表达式? 举个最简单的例子 12345678int main(){ int a=3; int b=5; int c = a + b * 7; //c的式子即为表达式 return 0;} 而C的整个式子就是一个表达式求值 在这之中,参与计算的两个变量以及结果变量都是int类型,并不需要进行整型提升 在我们日常编写代码的时候,编译器经常会有隐式类型转换 隐式类型转换 C的整型算术运算总是至少以缺省整型类型的精度来进行的 为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转化为普通整型,这种转换称为整型提升 12float f =3.14int num...
【C语言】剔除最大最小值后,计算数组元素的平均值
双11也不能阻挡我学习的心! [TOC] 问题引入 题目内容: 定义一个含10个整型元素的一维数组,从键盘上输入10个元素值,求去掉最大值和最小值之后的元素平均值. 输入格式: 用循环控制依次输入10个元素值,scanf语句中的格式控制串为: “%d” 输出格式: 输出平均值, printf中的格式控制串为 “%lf\n” 输入样例: 12 3 4 5 6 2 4 6 4 3 输出样例: 13.833333 理解1 一般人看到这种题目,下意识会认为是去掉一个最大值一个最小值,再计算数组其他元素的最大值 毕竟很多体育赛事都是这么计算选手的得分的 实际上这道题并不是这么要求的,这点我们后面再提 先来看看如何去掉数组中的一个最大值、一个最小值吧! 去除一个最大/最小值 先理清思路 需要找到数组中的最大值和最小值 在计算平均值的时候需要剔除这两个值 想清楚这两点后,方法就很明确了 之前我写过一篇博客,有关如何查找数组中最大值的 [链接] 这里我们就能用上那个博客里面的方法,不过是以自定义函数的方式实现 123456789101112131415161718int...
【C语言】如何将输入的数字逆序打印
这个问题是我在做学校的作业时候看到的。只隐约有印象讲过,但是忘记了怎么操作。听同学的点通才回想起来,特此写个博客留记 [toc] 逆序打印 目的:输入“789”,打印“987” 注:本博客的数字逆序只涉及 十进制 代码实现有两种方式: 1.利用if语句进行大小判断,直到选出从大到小的数字排序 这个方法十分复杂,稍不留意就会弄错,所以在实际应用中不推荐这样操作 这里就不赘述具体代码了。(才不是懒,压根没试过) 2.使用%10的方法直接打印 代码如下: 123456789101112#include <stdio.h>int main(){ int a = 0; scanf("%d", &a); printf("%d", a % 10); printf("%d", a/10 % 10); printf("%d", a/100 % 10); return...
【C语言】童年经典游戏-三字棋
@toc 问题引入 - 什么是三子棋? 想必大家儿时都玩过:#字棋 如图,即一个3x3的格子,玩家需要在横、竖、斜三条线上布下自己的棋子 先连成一条线上3个棋子的玩家获胜 如果格子填满后还未有胜者,即为平局 今天就让我们用c语言代码来完成一个基础的三子棋小游戏 涉及知识点: 二维数组、循环语句、自定义函数、自定义头文件 关联博客:扫雷游戏 自定义头文件 本次三子棋代码实现中,我们需要使用到自定义头文件 使用自定义函数前,需要先对函数进行声明 头文件就是一堆声明的集合 问:为什么不把函数声明直接main函数前面? 答:因为这样更方便团队进行同一个项目的分工制作 如何创建自定义头文件? 在vs编译器的“解决资源管理器”里,我们能看到头文件的文件夹 右键它,新建项 选择头文件进行新建,后缀是.h 创建完后,我们可以在另外一个源文件中引用头文件 1#include...
【C语言】用递归和非递归,求第n个斐波那契数
[toc] 问题引入 - 什么是斐波那契数列? 斐波那契数列中,第n项为n-1和n-2项之和 1,1,2,3,5,8,13,21,34,55…… 这个数列非常经典,经常用于编程语言初学者的练习 接下来让我们用非递归和递归两种方式来实现这个数列 并了解两种方法的优缺点! 1.非递归方法(迭代) 什么是迭代? 迭代其实和循环的意义差不多(个人理解) 我们计算斐波那契数列的时候,需要从第一项和第二项1、1开始计算 没后一项数字都是前两项数字之和 这样我们就可以利用循环,从第一项开始不断相加,再使其中一个加数等于得到的和 以此迭代,就能得到我们需要的第n个数字 代码实现 12345678910111213141516171819202122232425262728293031#include<stdio.h>//非递归int fo1(int a){ int tmp = 0; int num1 = 1; int num2 =1; if (a < 3) //前两项都为1 { return 1; ...