自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java 实现图书管理系统

基于这个小程序是要运用到类和对象,继承,多态,接口,抽象类,封装,数组这些所有学过的知识点来实现的,所以这次的文章篇幅可能比较长,写的比较细,也便于日后拿来复习。首先先让大家感受一下这个小程序运行起来是怎么样的,程序员虽然专心管后端开发,但是在开发之前我们也要了解这个小程序是有哪些功能,怎么实现的~运行程序,输入姓名字符串之后,会让用户确认身份,假设我们现在选择管理员选项,那么现在呈现在我们面前的就是一个管理员菜单,此时我们再选4,显示图书:......

2022-06-29 09:44:16 3787 3

原创 浅谈指针数组

像下图这样的就是指针数组,我们不难发现,这个数组分别有5个和6个元素,对应里面放的每一个元素的类型都是int*和char*那么当然数组里面放2级指针同样也可以:当大家了解这个指针数组之后,要和数组指针区分开,数组指针也就是指向数组的指针,这里写出来举个例子给大家: 现在创建一个指针变量p,那么我们知道其实放进去首元素地址进去p里面自然而然的就会找到整个数组后面的元素,所以这里写成int* p = arr,那么此时取地址arr,取出的是数组的地址,既然是数组的地址,就应该放到数组指针.

2022-01-18 19:14:08 692

原创 C语言 杨辉三角问题

今天来讲讲杨辉三角怎么用C语言表示,开门见山,我们知道杨辉三角是长这个样子的: 这样一眼看过去好像很难的样子,那当我们把这个杨辉三角改成以下这样子,把中间的空格取消掉: 这么一来规律就一目了然了,这不就是大家所熟悉的二维数组吗,对角线和第一列都是1,每一行的中间的元素都是上面对应的两个数相加出来的结果,那么现在着手来边写代码边分析://1//1 1//1 2 1//1 3 3 1//1 4 6 4 1 int main(){ int arr[10][10...

2021-12-15 16:00:00 942

原创 C语言实现冒泡排序

今天来讨论一下如何用C语言实现冒牌排序,我们结合画图来和大家讲一讲。 首先是这么一个思路:两两相邻的元素进行比较,如果有可能的话需要交换。结果出来的是一个升序的数列。 那么如下图: 假设有一个数组,十个元素,0到9这些数字乱放,那么思路就是如上图所示,每次对比相邻的两个元素,如果左边比右边的元素大,那么证明不满足升序的条件,此时把前面的元素往后面放,那么最大的数字必定就像元素9一样放到最后面。 这样为一趟冒泡排序,所此时以得出的结论是一趟冒泡排序只能搞定一个数字。所以说,要处...

2021-12-14 00:50:28 1640

原创 C语言实现数组排序并分组奇偶数

今天遇到一个问题,值得探讨一下,问题如下: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 首先拿到这道题目,我们先可以很顺利的写出主函数的内容,然后再重点讨论这个用来调整数组的函数,程序如下:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void print(int arr[], int sz){ int i = 0; ...

2021-12-02 19:32:01 3665

原创 浮点型在内存中的存储

我们平时常见的浮点数一般有3.14159这类型,这种叫字面浮点型,还有一种类型就是科学计数法的表示,例如1E10,表示的是1.0乘10的10次方。当然在浮点数的后面可以加上f,加上f就是float类型,不加 f 的话就是double类型。 当然这里我们可以在VS编译器底下看看float的头文件里面是如何定义浮点数表示的范围,像下图这样操作: 由上图中就可以看到浮点型对应相关的数据如最大值、最小值、精度这些定义,那么关于整型类型的范围定义就在头文件limits.h里面,大家也可以去探讨...

2021-11-30 21:12:25 742

原创 讨论C语言二进制序列的取值范围

今天来探讨一个问题,首先题目是这段代码,让我们说出运行的结果:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){char a[1000];int i;for(i = 0; i < 1000; i++) { a[i] = -1 - i; } printf("%d", strlen(a));return 0; 我们知道这里是先创建了一个字符数组,给到的是...

2021-11-27 20:14:42 477

原创 const修饰指针

我们知道const既可以修饰变量,也可以修饰指针,接下来探讨一下它在指针中的作用。#include<stdio.h>int main(){ int n = 10; n = 20; printf("%d", n); return 0;} 这么一段普通的修改变量代码,大家都知道在创建n变量前加上const程序就会出错,因为const修饰后的变量就不能被直接改变了,但是此时如果:#include<stdio.h>int main(...

2021-11-24 22:19:55 208

原创 数组的越界访问

今天来结合上次写的一篇文章《函数栈帧的创建和销毁(底层)》来结合讨论一下一个有关数组越界访问的题目,这道题曾经面试题出过,值得研究。 首先题目是:以下这段代码输出的结果是什么,哪里出现问题了,怎么解决?#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; for (i = ...

2021-11-23 11:20:13 462

原创 函数栈帧的创建和销毁(底层)

函数栈帧的创建和销毁在底层汇编代码中是如何解析的

2021-11-19 17:53:59 582 1

原创 C语言 指针类型

今天来研究一下指针和指针类型有什么用处。 在很多人看来指针类型可能没什么用,因为不管什么类型的指针,比如这里创建三个不同类型的指针变量,然后再对他们分别求他们在内存中所占空间大小:#include<stdio.h>int main(){ char* pc; int* pa; double* pd; printf("%d\n", sizeof(pc)); printf("%d\n", sizeof(pa)); ...

2021-11-17 16:42:45 330

原创 C语言中如何运用原、反、补码

今天来讲一讲在C语言中如何灵活的运用原码,反码,和补码,在开始讲之前,先讲一下什么是原码、反码和补码。原码、反码和补码 我们知道,整数的二进制有三种表达方式:原码、反码和补码。对于正整数来说,原码、反码和补码相同,对于负整数来说,原码、反码和补码不同,需要进行相关的计算,那么这里就结合图片给大家讲解一下,假设现在创建一个整型变量int a = 5,给它赋值5,5用二进制写的话一共32个bit位,因为a是一个整型,占4个字节,4个字节一共有32bit位,所以a的原码、反码和补码就如下图所示:...

2021-11-12 11:47:57 728

原创 C语言实现扫雷游戏

首先,参考我之前写的《C语言实现三子棋游戏》《浅谈用C语言实现猜数字游戏》,里面详细写到了实现游戏函数之前要打印的菜单之类的前置部分,这里就不再过多的阐述,我们知道,要创造一个游戏之前肯定要打印一个菜单提示玩家,此时我们可以随便在game函数里面设置一个打印函数,测试一下当前的菜单有没有错,写一部分测一部分养成好习惯,程序设计以及测试运行如下:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void menu(){pr...

2021-11-10 21:21:35 2704

原创 C语言实现三子棋游戏

今天来写一个简单的三子棋游戏,与上次写的猜数字游戏一样是一个涉及代码较多的一个程序,接下来展开细致的剖析。 首先先规划一下,游戏的代码比较多,我们不可能把所有代码写在.c后缀的main函数里面,所以我们一共会拆开分为三大部分,test.c里面放的是游戏的测试逻辑,game.c里面放的是游戏的实现逻辑,最后再把游戏实现函数的声明放入game.h,这样调用的话就分工明确,代码可读性也变得很高。文件创建就如下图所示: 当创建好文件后,首先在test.c里面写一个调用test函数的流程,接着就是打...

2021-11-08 18:00:00 2413

原创 数组在内存中的储存

今天就来探讨下数组在内存中是如何储存的。 首先我们先创建一个有10个元素的一维数组,假设这个数组的元素是1~10,并将它的每个元素的地址都打印出来,观察一下其中的规律,代码书写如下: 注意这里地址的打印是要用%p,最终程序运行打印出来的结果如下图所示: 可以看到arr[1]的地址是010FF858,arr[2]的地址是010FF85C,我们知道在16进制中C就是12,看到arr[1]和arr[2]结尾的58和5C,所以就差了4,下面的arr[6]和arr[7]亦是如此...

2021-11-05 18:45:15 4405

原创 用C语言实现青蛙跳台阶问题

今天刚学完函数的一个很重要的知识点,函数的递归,随即看到的一个很有趣的问题,就是,青蛙跳台阶的一个问题。 假设一只青蛙一次可以跳上1级台阶,也可以跳上2级。求青蛙跳上一个n级的台阶共有多少种跳法(先后次序不同算不同的结果)。下面来展开讨论一下。 首先,我们知道n为台阶的级数,以n为变量列举以下几种情况: 假设n=1,青蛙只有1种跳法,就是1; 假设n=2,青蛙有2种跳法,就是2,(1,1); 假设n=3,青蛙有3种跳法,就是(1,1,1),(1,2),(2,1); 假...

2021-11-03 21:03:51 790

原创 C语言中 传值调用和传址调用的区别

今天来谈一谈C语言中传值调用和传址调用的区别。 接下来用一个题目来展开讨论,题目是:写一个函数可以交换两个整形变量的内容。 假设现在有两个变量一个是a,一个是b,现在要交换这两个变量的值,首先我们写出以下程序,然后自定义一个Swap函数,依赖这个函数把两个变量进行交换,现在先把a和b传参,然后在函数调用之前先打印("交换前:a=%d b=%d", a , b),在Swap函数调用后打印("交换后:a=%d b=%d", a , b),程序编写如下: 现在就开始在主函数前先定义这个...

2021-11-01 22:10:57 643

原创 浅谈用C语言实现猜数字游戏

最近学习了一个比较有趣的题目,感觉是能全面的考核到现阶段自我学习情况的一个代码,接下来想和大家分享探讨以下。 题目是:电脑随机生成一个1~100之间的数字,然后玩家开始猜数字,如果猜小了,电脑会告诉你猜小了,反之会告诉你猜大了,猜对了的话,电脑也会告诉你恭喜你,猜对了。 那么这个游戏如果玩家觉得玩一把觉得不够过瘾,这个游戏可以不退出,重新来玩,那么我们可以给他做一个菜单,设计程序选择1则继续游戏,选择0就退出游戏。下图先简单的实现一下这个逻辑。 这里选择不常用的do whil...

2021-10-30 17:08:09 930 1

原创 C语音实现简单的密码登录(简单逻辑)

今天从一个题目中学到不少东西,打算分享出来和大家探讨一下。 现有题为:编写代码实现,模拟用户登录情景,并且只能登陆三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。 首先函数主体先写出来,总体思路先理清,题目说只能登录三次,最多输入三次密码,也就是程序最多循环三次,如果能提前结束的话,提前break跳出即可。 上图为主要循环,此时假设我们要输入的密码是一个字符串"123456",这时给上一个数组password[]。如下图所示:...

2021-10-29 18:33:25 8070 1

原创 浅谈二分查找

在一个有序数组中查找具体的某个数字n(注意前提是一个有序数组) 假设现在有一个1~10的有序数组,要我们找到其中的7,开设一个变量k,初始化,首先程序设计如下: 通常数组里面的元素都会有自己对应的下标,比如上图中的1~10对应的下标就是0~9,最通俗的解法就是把每个数拿出来与要找的7对比以下就可以了,也就是用上for循环,程序如下: 其中找到的元素与k相等,也就是要找的目标元素,随之打印出来,若循环超出10的范围,则证明找不到。这种方法虽然直接明了,解决了问题,但...

2021-10-27 19:25:57 107 2

原创 小白学习 指针,指针变量,指针变量大小

前言一、指针 1.内存 2.指针变量及其大小二、总结前言今天学的是指针,C语言很重要的一个部分,打算自己写出来当作复习!对于C语言来说,指针是一个很重要的部分,接下来让我们一起来了解一下指针。一、指针1.内存 首先,指针与电脑上的存储器→内存有关联,计算机的程序都是在内存里面进行的。 此处先展开讲一下内存,在使用内存的时候,会把内存分为一个个小单元,这里的每一个单元的大小是1个字节 。如下图所示:图 1 内存 如果想访问...

2021-10-25 20:02:23 431

原创 初学C语言

如图所示今天初学C语言的第一个疑问,自己查阅资料后弄明白了如图中的派3.14后要加f,是因为编译器会这个数默认为 double 类型, 像1默认为int类型一样如果此处不加上f的话,编译器会不知道这个数是我们想要的float类型,直接默认double类型,而且系统会自动默认为double类型,然后再赋值给float类型,这样虽然会编译成功,但会导致精度缺失。还有就是float是单精度浮点型,是包含小数点的,但不代表只能赋值小数,可以把带小数的数赋给它,也可以直接把整数赋给它。无论是整数还是小

2021-10-22 21:01:09 57

test_11_07.exe

test_11_07.exe

2021-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除