自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 直接插入排序

直接插入排序算法思想从当前位置开始,从后往前找比当前数字小的数字,找到后插入到这个小的数字后面;在找的过程中,如果发现一个比当前数字大的数字,则两个数字同时往后挪。算法思想举例数组:9 8 7 6 5首先从第二位数字“8”开始,从“8”往前找比“8”小的数字,因为只有“9”,“9”大于“8”,则“9”挪到“8”位置,“9”前面没数字了,则把“8”放在第一位。如果数组为:7 8 9 5 6则数字“8”前面只有“7”,比“8”小,则把“8”插在“7”后面。如果数组为:1 2 3 4 6 7 8

2021-09-11 18:15:38 126

原创 结构体练习题

结构体内的变量和指针结构体内是变量struct School{ char s_name[20]; int s_age;};void Init_School(struct School *sx){ char name[20] = "ligong"; strcpy_s(sx->s_name, 20, name); sx->s_age = 90;}void Print_School(struct School *sx){ printf("name:%s\n", sx-

2021-04-27 15:48:46 2357

原创 结构体知识点

结构体的结构如下://关键字struct是数据类型说明符,指出下面说明的是结构体类型struct 结构体名{ 成员列表(可以是基本数据类型,指针,数组或其它结构体)};//最后的分号不能少结构体相当于自己设置了一种数据的类型,类型名即结构体的名字。例如:struct Student{ char s_id[8]; char s_name[8]; char s_sex[4]; int s_age;};int main(){ int a = 10; int ar[10] =

2021-04-27 15:45:09 782

原创 二维数组练习

二维数组元素行列交换起始二维数组ar[2][3]:1 2 34 5 6目标二维数组br[3][2]:1 42 53 6#include<stdio.h>#include<assert.h>void Print_Ar(int(*ar)[3], int n, int m){ for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { printf("%4d ",

2021-04-26 15:56:41 387

原创 二级指针与二维数组

二级指针一级指针指向的是变量的首地址,二级指针指向的是一级指针的首地址。整型变量a;一级整型指针变量p;二级整型指针变量s。s本身是p的地址;p本身是a的地址;a本身是数据0。*s是p本身;*p是a本身。**s是a本身。int main(){ int a = 0; int* p = &a; int** s = &p; printf("%d \n", a); printf("%p \n", p); printf("%p \n", s); **s += 1;

2021-04-26 15:39:50 4129 2

原创 递归算法练习

1、依次输出数组中的元素void Print_Ar(int* br, int n){ assert(br != nullptr); if (n > 0) { Print_Ar(br, n - 1); printf("%d ", br[n - 1]); }}int main(){ const int n = 5; int ar[n] = { 12,23,34,45,56 }; Print_Ar(ar, n); return 0;}如果想正序输出元素,就先递归再输

2021-04-23 15:07:52 308

原创 数组左移右移

数组左移右移(for循环)void Output(const int* ar, int n){ for (int i = 0; i < n; ++i) { printf("%d ", ar[i]); }}void Right_Move_Array(int* ar, int n){ assert(ar != nullptr && n > 0); int tmp = ar[n-1]; for (int i = n-1; i > 0; --i) {

2021-04-23 15:02:03 1811

原创 拼接两个不同长度的有序数组

拼接两个不同长度的有序数组数组A的长度为m+n,其中有m个数,数组B的程度为n,其中有n个数。数组A和数组B皆为有序数组(从小到大排列)。#include<stdio.h>#include<stdlib.h>#include<assert.h>void Mer_Seq(int* target, const int* Basic, int m, int n){ assert(Basic != nullptr && m > 0 &amp

2021-04-23 14:37:54 618

原创 移除数组中某个数

移除数组中某个数#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>int RemoveElem(int* br, int n,int val){ assert(br != nullptr && n > 1); int i = 0; int j = 0; for (j = 0; j < n; ++j) { if (b

2021-04-23 14:30:48 799

原创 判断一个数组是否为有序数组

判断一个数组是否为有序数组#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>bool Monoton(int* br, int n){ assert(br != nullptr && n > 1); bool a = 0; int sum = 0; bool tmp = 0; for (int i = 0; i < n

2021-04-23 14:25:12 2310

原创 二分查找

二分查找法(循环)int FindValue(int* ar, int n, int val){ int pos = -1; int left = 0; int right = n-1; while (left <= right) { int mid = (right - left) / 2 + left; //int mid = (left + right) / 2;(可能会超出整型范围) if (val > ar[mid]) { left = mid

2021-04-23 14:14:09 165 1

原创 指针、数组简单练习题1

1、100个随机数进行冒泡排序void Swap_Int(int* x, int* y){ int tmp = *y; *y = *x; *x = tmp;}void BubbleSort(int* ar, int n){ assert(ar != nullptr && n > 1); for (int i = 0; i < n - 1; ++i) { bool tag = true; for (int j = 0; j < n - 1 -

2021-04-23 06:58:17 246

原创 指针在数组的简单应用

指针在数组的简单应用int main(){ const int n = 5; int ar[n] = { 1,2,3,4,5 }; int* ip = ar; sizeof(ar);// type * num for (int i = 0; i < n; ++i) { printf("0x%08X %d %d \n", ip + i, ip[i], *(ip + i)); //printf("0x%08X %d %d \n", ar + i, ar[i], *(ar + i))

2021-04-22 16:35:26 287

原创 前置自加自减和后置自加自减在指针上的区别

前置自加自减和后置自加自减在指针上的区别int main(){ int ar[5] = { 12,23,34,45,56 }; int* p = ar; int x = 0; int y = 0; x = *p++; y = *p; printf("%d %d \n", x, y); x = ++*p; y = *p; printf("%d %d \n", x, y); x = *++p; y = *p; printf("%d %d \n", x, y); return 0;

2021-04-22 16:17:28 371

原创 C语言初学者笔记1

C语言前置知识一、概念1.软件软件是一系列按照特定顺序组织的计算机数据和指令的集合,即程序加文档的集合体。软件被划分为:系统软件、应用软件和介于两者之间的中间件。2.文件文件时一个外存(硬盘、U盘、网盘)的概念,文件由两部分构成:文件名和文件主体。文件可分为(用C语言的文件举例):(1)可执行文件:扩展名为.exe的文件为可执行文件。(2)不可执行文件:.c/.cpp源文件(文本)、.h头文件(文本)、.i预编译文件(文本)、.s汇编文件、.o/.obj二进制目标文件。3.进制及其转换

2021-04-08 17:44:11 171

原创 2021年4月7日Linux笔记

普通文件的编辑(vim)安装vim(1)切换到root用户 sudo su(2)apt install vim -y基础使用vim可以说是vi的增强版,在vim中的命令在vi中都可以使用。vi、vim:普通文本的内容编辑工具,相当于Windows上的记事本。vi、vim是在Linux的终端上使用,没有图形化界面的。类似于一个普通命令方式去使用。用vim打开一个文件的方式:vim filename(普通文件)vi的三种操作模式命令行模式——打开文件后,默认的模式编辑模式——插入模式末行

2021-04-07 15:01:08 144

原创 vs2019、C语言中从键盘中读取字符,用scanf、scanf_s的区别

vs2019、C语言中从键盘中读取字符,用scanf、scanf_s的区别在使用Visual Studio 2019进行C语言编程时,有时候需要从键盘读取字符,这时候就要用到scanf()语句。#include<stdio.h>int main(){ char a; scanf("%c", &a); printf("%c \n", a); return 0;}如果进行调试,就会看到:error C4996: 'scanf': This function or v

2021-03-31 14:48:10 3088 4

空空如也

空空如也

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

TA关注的人

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