- 博客(15)
- 收藏
- 关注
原创 利用c语言实现顺序表的增删改查,
顺序表(物理结构和逻辑结构均是连续的)(类似于封装数组)特点:1、可动态增长的数组2、数据在数组中的存储是连续的缺点:中间插入或删除的效率较慢,需挪动数据,时间复杂度是O(N)。空加不够增容会造成一定程度的空间浪费。优点:可以随机访问!!利好排序查找等操作。缓存利用率较高!基本结构:typedef struct SeqList{ SLDataType *a; int size;//有效数据的个数 int capicity;//容量空间大小(不够可以扩容——动态)}SL
2021-12-08 21:09:21
1010
原创 初学指针数组的理解
引言:初学指针数组的心得与体会指针数组:本质上是数组!!!数组元素是指针(地址)关于数组指针的初始化等问题请参考其他文章,这里直接讲应用。列:利用指针数组打印分别三个整形数组的元素。代码如下:int main(){ int a[] = { 1,2,3,4,5 }; int b[] = { 2,3,4,5,6}; int c[] = { 3,4,5,6,7 }; int* arr[3] = {a,b,c}; int i = 0; for (i = 0; i < 3;
2021-10-24 20:05:58
168
原创 初学字符指针的理解
引言:字符指针在实际编程中的两大主要应用字符指针:用于存放字符变量地址的变量称为字符指针,定义方式为char *。两大主要应用:1、存放字符变量地址。2、存放字符串。对于1,字符指针的最主要作用还是存放字符变量的地址,这里不做多的赘述。主要看2,当我们读C语言代码时经常会看到这样的代码:char* p = "l love you! ";读到这里,难免会有疑问,这不是错的吗?怎么能用一个存放地址的变量来存放字符串呢?其实,这句话并没有错误,这里用字符指针存放字符串的原理是:
2021-10-20 20:31:55
878
原创 浅谈利用C语言实现冒泡排序
引言:冒泡排序的理解与使用。冒泡排序,顾名思义就是像一个气泡一样排序。冒泡排序的核心思想是:按顺序每次选择一个数与其后的每一个数进行两两比较,并根据升序还是降序对二者进行交换位置。冒泡排序的两个核心问题:1、确定趟数2、确定两两比较次数假设我们有n个数需要被排列对于1,我们发现经过一趟完整的两两比较后,必然会有一个数被排好,也就是说每一趟能够排好一个数,所以我们需要排n-1(因为最后一个数不用排,当前面数都排好后,最后一个数自然成序)趟。对于2,假设当前排到第k个数,我们发现
2021-10-19 21:15:56
222
原创 使用递归求第n个斐波那契数列
引言:递归的理解与使用。斐波那契数列(这个数列从第3项开始,每一项都等于前两项之和。)核心思想:递归的理解与使用。递归:函数的递归(把原问题转化为规模较小的与原问题相似的小问题)递归的两个必要条件:1、存在限制条件,当满足这个限制条件时递归不在进行。2、每次递归调用之后越来越接近这个限制条件。所以写递归代码时:1、不能是死递归2、每次递归后必须要逼近限制条件,否则会造成栈溢出!在此问题中:递归的终止条件:当这个数小于2时。算法思想:遍历,利用前一个数加后一个数、程序如下:
2021-10-17 21:12:47
1521
原创 C语言利用递归打印任意整形数字的每一位
引言:递归的理解与使用。核心思想:递归的理解与使用。递归:函数的递归(把原问题转化为规模较小的与原问题相似的小问题)递归的两个必要条件:1、存在限制条件,当满足这个限制条件时递归不在进行。2、每次递归调用之后越来越接近这个限制条件。所以写递归代码时:1、不能是死递归2、每次递归后必须要逼近限制条件,否则会造成栈溢出!程序如下:#define _CRT_SECURE_NO_WARNINGS 1//避免scanf函数报错#include <stdio.h>void
2021-10-10 16:40:31
346
原创 利用C语言编程找1-100内的素数
引言:c语言编程基础算法核心思想:循环遍历、判断当前数是否为素数、循环终止条件的设立、函数返回值的使用。程序如下:#include <stdio.h>#include <math.h>int is_prime(int n){ int j = 0; for (j = 2; j <= sqrt(n); j++)//算法优化,不必到他本身,只需到他的开平方即可。 { if (n % j == 0) return 0;//若能从而到这个数本身之间找到
2021-10-05 21:18:00
6403
原创 设计一个函数,使两个整形变量交换值。
引言:c语言指针基础操作核心操作:指针的创建、指针的传参、scanf()函数的使用、返回值类型、传值调用和传址调用。核心思想:形式参数和实际参数的理解。对指针操作可以改变指针所指参数的值。程序如下:#include<stdio.h>void exchange(int* pa ,int* pb)//形式参数,调用完了之后会自动销毁,形式参数是实际参数的临时拷贝。{ int z; z=*pa; *pa=*pb; *pb=z;}int main(){ int i
2021-10-04 20:25:40
1367
原创 实现数组从###############到welcome New Zealand的动态显示
引言:c语言编程基础算法核心思想:循环的向前和向后遍历数组、循环终止条件的设立、动态效果。程序如下:#define _CRT_SECURE_NO_WARNINGS 1//避免scanf函数报错#include <stdio.h>#include <Windows.h>int main(){ char arr1[] = "welcome to New zaeland!";//字符串数组一般采取这种格式! char arr2[] = "############
2021-10-03 12:51:31
113
原创 c语言利用二分法查找顺序数组
引言:c语言编程基础算法,查找顺序链表或数组某个元素下标的常用方法核心思想:求数组元素个数的方法、指针运算、向前向后同时遍历。程序如下:#define _CRT_SECURE_NO_WARNINGS 1//避免scanf函数报错#include <stdio.h>int main(){ int arr[]={0,1,2,3,4,5,6,7,8,9,10}; int k; int left=0; int right= 0; int mid=0; int sz=0;
2021-10-02 11:58:50
584
原创 C语言编程实现计算1!+2!+...+n!
引言:c语言编程基础算法核心思想:计算阶乘、将阶乘相加、循环嵌套程序如下:#define _CRT_SECURE_NO_WARNINGS 1//避免scanf函数报错#include <stdio.h>void main(){ int i=0; int n=0; int sum=0; long a=0; long num=1; printf("请输入一个数,我们可以为你计算它得阶乘相加\n"); scanf("%d",&n); for(i=1;i&l
2021-10-01 14:18:08
14022
原创 C语言找出任意数内的奇数
引言:C语言编程基础算法:编程找出小于任意一个数的奇数。奇数:百度百科定义:奇数(odd)指不能被2整除的整数 ,数学表达形式为:2k+1,奇数可以分为正奇数和负奇数。核心思想:利用输入函数输入一个数、和2取余等于1为奇数。程序如下#define _CRT_SECURE_NO_WARNINGS 1//避免scanf函数报错#include <stdio.h>int main(){ int n = 0, i = 0; printf("请输入一个整数\n"); sc.
2021-10-01 14:10:22
1929
原创 浅谈c语言清空输入缓冲区的注意事项
一、简单概述输入缓冲区所有从键盘输入的数据,不管是字符还是数字,都是先存储在内存的缓冲区中,叫作“键盘输入缓冲区”,简称“输入缓冲区”或“输入流”。我们来设计一个程序:设置密码,将密码保存到一个数组里,保存成功或失败都有提示。按照思路,我们编写以下代码void main(){ int ch=0; int a=0; char sb[]={0}; printf("Please set your password:\n"); scanf("%s",sb); printf("
2021-09-06 12:42:45
589
原创 初学c语言static的理解
一、简单概述static1、static修饰局部变量,成为一个局部静态变量。2、static修饰全局变量与函数,成为静态全局变量与静态函数。什么叫局部变量,咱们来看一段代码:#include<stdio.h>void sum(){ int z=1; z++; printf("%d\n",z);}int main(){ int k=0; while(k<5) { sum(); k++; } return 0;}程序进入主函数
2021-09-04 22:58:16
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人