自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 bool布尔型-只存在0和1的数据类型

我们知道,C语言中定义了许多种数据类型,其中包括了整型int、长整型long、字符char、浮点数float和double等。今天我们要介绍的是一种用于逻辑判定的数据类型——bool布尔型。布尔型的数据只有两个值——0和1。0对应的逻辑表达式的结果为False,也就是错误;1对应的逻辑表达式的结果为True,也就是正确。我们再来复习一下逻辑表达式。在逻辑表达式中,最常见的两个运算符就是”且“,&&,和”或“,||。&&代表的是前一个算术表达式的结果与后一个算术表达式的结果

2020-07-22 15:10:05 10538

原创 插入排序InsertSort-注意a[i]值的变化

在前面的几篇博客中,我们已经简单地探讨过冒泡排序、选择排序和快速排序了,今天,让我们来聊聊插入排序insertSort。插入排序,顾名思义,就是在合适的地方插入元素,使得数组由小到大(由大到小)排列。代码实现如下:void InsertSort(int a[],int count) { int i,j; for(i = 1;i < count; i ++) //第一次循环将0-1作为“有序区,使得a[0]和a[1]按从小到大的顺序排列 { //之后每次循环将”有序区“向后扩展

2020-07-21 10:30:09 348

原创 将指针指向函数(*p)(int,int)

为了展示指针指向函数的功能,我们先来定义三个简单的函数:int maximum(int a,int b){ if(a>b) return a; else return b; } int minimum(int a,int b) { if(a < b) return a; else return b; } int add(int a,int b) { return (a+b); }相信这三个函数对大家来讲没什么难度,分别是返回较大

2020-07-20 17:58:57 433

原创 使用指针调用函数

double x,y,z; scanf("%lf%lf",&x,&y); z = max(x,y); printf("max num is:%lf",z);以上是主函数中的内容,表示输入x,y两个双精度浮点数,然后调用max函数求出,试运行结果如下:请输入要比较大小的两个数:3.344 5.6655max num is:5.665500接下来,我们使用指针来调用max这个函数:我们在主函数中定义一个指针变量,将它指向函数的入口地址: double (*p)(doubl.

2020-07-20 12:59:05 1665

原创 使用指针将一个字符串复制为另一个字符串

#include<stdio.h>main(){ char str_a[] = "Ich Lebe Dich!"; //定义字符串并赋值 char str_b[20]; int i; for(i = 0; *(str_a + i) != '\0'; i++) //使用指针将str_a的元素赋给str_b { *(str_b + i) = *(str_a + i); } *(str_b + i) = '\0'; //要加上终止符 printf("str_a is:\

2020-07-20 11:01:05 5668

原创 (*p)[m]指针用于二维数组(C语言)

相信多数学过C语言的小伙伴们都明白,在调用数组的时候,*a和a[]的作用是一致的——都是传入数组a[]的第0个元素的地址,即首地址。如果需要获取数组中的第i个元素,我们也有两种方法:*(a+i)或a[i],且有*(a+i) == a[i]。那么,当我们在一个n行m列的二维数组中调用第i行的元素时,我们可以用a[i]来指代从a[i][0]一直到a[i][m]的所有元素的集合。这个时候问题来了,我们既然可以通过数组下标来表示二维数组的一整行,那么,我们可不可以用指针来表示同样的内容呢?...

2020-07-20 10:32:22 622

原创 *(*(a+i)+j)输出数组第i-1行第j-1列的元素

printArr(int *a,int line,int column){ int i,j; for(i = 0; i < line; i++) { for(j = 0; j < column; j++) { printf("%d\t",*(a+i)+j); //*(a+i)+j是第i-1行第j-1列的元素 } printf("\n"); }}输出结果为:请输入行数与列数:7 865 66 67 68 69

2020-07-19 17:42:54 1313

原创 简单说下select_sort选择排序,数组表示及指针表示

void select_sort(int a[],int n){ int i,j,min; for(i = 0; i < n - 1; i ++) { min = i; for(j = i+1;j < n;j ++) { if(a[j] < a[min]) { min = j; } swap(&a[min],&a[i]); } }}设置两层循环,外循环从0到数组的倒数第二个元素,内循环从起始元素i到数组的最后一

2020-07-19 10:42:20 548

原创 从递归视角理解快速排序(C语言实现)

在说快速排序之前我们先要了解递归。递归,按照通俗易懂的理解就是自我调用。写一个自我调用的函数如下:int defined_pow(int n,int count){ if(count == 0) return 1; else return n*defined_pow(n,count -1); } 这个函数的作用是求n的count次方,当count为0时,我们返回1(任何数的0次方都等于1),当count不为0时,我们先计算n的count-1次方,再讲结果与n相乘,再返回给调用它的.

2020-07-18 15:41:06 338

原创 在C语言中使用冒泡排序

排序的算法有许多种,今天我们来学习从小到大的冒泡排序:冒泡排序的思想是将无序数组的两个相邻元素比较大小,如果前一个比后一个元素大,就将前一个与后一个元素对调。这样下来,一次循环过后,数组中最大的元素就被放在了最后,也就是下标为n-1的存储单元中。下一次循环还是从第0个元素开始,将数组中第2大的元素放在下标为n-2的存储单元。……依次比较,等到n次循环过后,数组的第0到第n-1个数就按照从小到大的顺序排列好了。函数代码实现如下:void bubble_sort(int arr[],int leng

2020-07-17 13:49:32 671

原创 数据结构与算法之hashmap散列表查找

标题

2020-07-17 11:58:22 989

原创 C语言的swap函数(需使用指针)

在C语言中,我们经常会调用函数去将两个值进行交换,如果我们使用如下函数进行交换,形式参数会随着函数的结束而被释放,影响不到实际参数的值:int swap(int a,int b){ int t; t = a; a = b; b = t; return(a,b);}即便我们在最后加上了一个return,依然无法实现两个数的值的交换。运行如下代码: int x,y; printf("请输入两个数字:"); scanf("%d%d",&x,&y); swap(x,

2020-07-17 11:19:50 3743 2

原创 C语言新手常犯的错误-截断

截断往往发生在复制过程中准确地说,是将占用字节数较多的变量赋值给占用字节数较少的变量时,如j将long(16个字节)赋值给char(1个字节)时,这时候long类型的变量只将最低的一位赋给了char类型的变量,而高位数据全部被“截断”: long x=988777; char y='o'; printf("%c\t%ld\n",y,y);此时分别以字符类型和长整型类型输出变量y,得到小写字母o和小写字母o的ASCII码:111o 111而当我们将长整型的变量x的值赋给y后,使用

2020-07-16 14:26:57 3931

原创 新手在C语言中常犯的错误(二)

将数组名当作指针:main(){ int i,n; printf("请输入数组的长度:"); scanf("%d",&n); int num[n]; for(i = 0; i < n; i ++) { scanf("%d",num++); }}编译器报错如下:[Error] lvalue required as increment operand错误出现在num++,num是数组名,它的值不能改变。正确的做法应该是:for(i = 0; i < n

2020-07-15 21:20:14 574

原创 C语言中常犯的错误(一)

程序出错有三大类:语法错误、逻辑错误和运行错误对于语法错误,编译器会给出精确到行的提示;逻辑错误则需要在流程图的辅助下,重点关注留意花括号,进行判定;而运行错误则是指程序在接收到某些数据时因为处理不当,如数组a[n]中输入了第n+1个元素,导致程序在运行过程中出现错误。今天我们主要探讨以下几个错误:使用文件时打开方式不正确:#include <stdio.h>#include <cstdlib>main(){ FILE *fp; if((fp = fopen("

2020-07-15 08:49:18 772

原创 python使用pip卸载和安装库

pip先来演示pip的错误打开方式:C:\Users\86188>pyPython 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> pipTraceback (most recent call last

2020-07-14 20:11:01 7194 1

原创 C语言版-数据结构线性表之头插法与尾插法

头插法和尾插法主函数如下: LinkList L; ElemType e; Status i; int j,k; i=InitList(&L); printf("初始化L后:ListLength(L)=%d\n",ListLength(L)); i=ClearList(&L); printf("\n清空L后:ListLength(L)=%d\n",ListLength(L)); CreateListHead(&am

2020-07-14 17:42:05 4713 1

原创 C/C++中的srand()和rand()随机数函数

先通过srand()设置种子,才能用rand()%n产生随机数#include <stdio.h>#include <stdlib.h>#include <time.h>main(){ int n,i; scanf("%d",&n); int numbers[n]; srand((unsigned) time(0)); //用当前时间产生种子 for(i=0;i<n;i++){ numbers[i] = rand()%200+1;

2020-07-14 15:57:42 1581

转载 C/C++中的memset函数

void *memset(void *s, int ch, size_t n);void *memset(void *s, char ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。如:int array[5]={1,4,3,5,2};for(int i=0;i<5;i++)cout&lt.

2020-07-14 14:52:16 432

原创 C语言(int *)malloc(sizeof(int))的作用与意思

(int*)malloc(sizeof(int));语句给指针变量分配一个整型存储空间。C语言中定义指针变量后,必须给指针变量进行相应的地址分配,,之后才可以使用指针变量,否则就会出现程序异常。int *p; //定义指针变量p,未初始化地址分配的方法通常有两种:(1)int x = 5;p = &x; //p指向x所在的位置,要注意x和p的数据类型应相同(2)p = (int*)malloc(sizeof(int)); //让系统为p选择一个内存空间。malloc的原型是

2020-07-14 14:12:20 38488 5

原创 C语言string中的find()函数

在c++中,字符串类型string后面加上.find()的作用,是 string str1, str2; int i; string str1 = "qwertyuuoesdi"; string str2="uu"; char c = 'q'; i = str1.find(str2);//从串str1中查找时str2,返回str2中首个字符在str1中的地址 printf("%d\n",i); i = str1.find(str2,5);//从str1的第5个字符开始查找str2 prin

2020-07-14 13:29:11 6169 1

《计算机系统结构》往年考题.docx

《计算机系统结构》往年考题.docx

2020-07-17

空空如也

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

TA关注的人

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