c语言
不见月光见星光
这个作者很懒,什么都没留下…
展开
-
C语言中各种类型指针及用法
C语言中各种类型指针及用法一 空指针 char a[10] = "ok"; void *p; char *p1 = a;// 空指针可以随意指向其他类型p = p1;// 其他类型指针指向空指针要进行类型转化,将空指针和转化为一个相应类型的指针p1 = (char *)p;二 来自不同类型指针的指向int x = 16;short int *p2;// 现在p2指向的是x的前两个字节p2 = (short*)&x;三 野指针如果不对一个指针进行赋值,它会随机指向一块原创 2021-06-04 21:35:42 · 590 阅读 · 0 评论 -
函数和指针
函数和指针一 函数的指针// 如果一个函数的原型是(ReturnType) f(ElemType),如int f(int x);// 那么他的指针是int (*p)(int x);p = f;二 函数的指针数组// 如果一个函数的原型是(ReturnType) f(ElemType),如int f(int x);// 那么他的指针是int (*p[4])(int x);p[1] = f;三 返回值为特定大小数组指针的函数// 返回一个两个元素大小的数组的指针的函数int (原创 2021-06-02 18:47:35 · 72 阅读 · 0 评论 -
多进程时间占用问题
先来看个题目解题 dp走起第一问第二问先来看个题目 假设现在用6个会议要开,而你只有15分钟(1)在这段时间内你最多能开多少个会议(2)在这段时间内你最多能休息多长时间前提:当你为空闲的时候必须参加会议,若多个会议重合你可以选择参加其中一个会议起始时间/min占用时间/min12164118581115解题 dp走起 先写一个快排(菜鸡不会用sort),以起始时间为序,大的在前,小的在后void Qsort(int .原创 2021-02-26 14:53:11 · 226 阅读 · 0 评论 -
二分搜索
二分搜索二分搜索的前提是列表为有序表二分法的本质就是不断地缩小空间假设有一个数组a=[ 1 2 4 5 7 9]要寻找4的位置a[mid]<numl=mid+1a[mid]>numr=mid-1a[mid]==numreturn midlr数组mid061 2 4 5 7 93021 2 41221 2 42return 2int Two(int *a,int r,int x){原创 2021-02-25 17:30:58 · 39 阅读 · 0 评论 -
求最长递减子列
求最大递减子列的三种方法 假设有一段数列为 8 2 3 4 1 3 2,求该数列的最长递减子列一.动态规划f(i)为以a[i]为结尾的最大递减子列长度当i>j时如果(a[I]<=a[j])f[I]=max(f[j]+1,f[i])f(i)为以a[i]为结尾的最大递减子列\\长度当i>j时\\ 如果(a[I]<=a[j])\\ f[I]=max(f[j]+1,f[i])f(i)为以a[i]为结尾的最大递减子列长度当i>j时如果(a[I]<=a[j])f[I]=ma原创 2021-02-25 16:15:14 · 230 阅读 · 0 评论 -
浅谈C语言指针
浅谈C语言指针一 指针的定义 指针储存着地址,这样打比方,变量是一个房间,而变量的值是入住的客人,指针是客人手里的钥匙。认识几种基础符号& 取址运算符*间接运算符,可以得到指针地址所对应的值二 定义一个指针// 定义一个指针指向变量int *p=&b;// 前面的(int)的类型根据所指向的变量的类型而改变// 定义一个指针指向一维数组int *p1=&b;// 定义一个指针指向二维数组int b[3][4];int (*p2)[4]=b;//b原创 2021-02-17 11:25:33 · 125 阅读 · 1 评论 -
递归及递推基础
一 递归1 定义 递归是指将一个大问题逐渐分割成一个个小问题,直至最小可解的单元。类似于分治的思想2 难点 在递归中,我们经常会将自己陷入到无穷多的细节中去,不断向更下层思考,增加了代码的复杂性。3 解决 我们可以先写出代码的的第一层,然后将里面的可继续递归部分替换为递归4 例题写出第一层,即不需递归的形式void out(int x){ int i=0; int mark=0; while (x/2||x==1) { if(x%2){原创 2021-02-12 20:53:47 · 133 阅读 · 0 评论 -
c语言排序方法汇总
C语言排序方法汇总在接下来的排序方法中,我们都采用4 1 2 6 5 3这个数列作为我们的栗子一 冒泡排序i41265311245362124356312345641234565123456冒泡排序的本质就是每次将前n-i个数中的最大值换到第n-i+1位上去代码如下 for (int i=1; i<=n; i++) { for (int j=1; j<=原创 2021-02-07 15:41:56 · 3645 阅读 · 0 评论 -
01背包问题基础
背包问题一 背包问题的一般形式例题例:张三去抢劫时,带了一个容积为8的背包,等他闯进店里,发现店里有四件物品,如何装他的背包可使获利最大。itemsspacevalue电脑(1)31500吉他(2)51000平板(3)2500音响(4)1200分析:张三在拿取某物品时,会出现两种状态:1.空间不足,这个物品无法拿取2.空间足够,可以拿取也可以不拿取(拿取不一定是最优解,因为你只拿三个物品不一定就比拿四个物品便宜)状态一: bag原创 2021-02-06 10:48:07 · 89 阅读 · 0 评论 -
C语言求幂的三种方法
用三种方法求幂值一. 暴力递归直接对x乘y次int result(int x,int y){ int num=1; for (int i=1; i<=y; i++) { num*=x; } return num;}这种方法有手就行,但是运行时间往往过长二. 快速幂主要利用递归,它的思想类似于分治,把大问题分割为小问题,再将小问题的结果合计为大问题的解t4=t2+t2t^{4}=t^{2}+t^{2}t4=t2+t2所以我们可以对原创 2021-02-05 18:56:27 · 24285 阅读 · 13 评论 -
C语言高精加
虽然C没有python那样的自带高精加,但是我有勤劳的双手一.客套的开头#include <stdio.h>#include <string.h>#define ll long longchar a[600];char b[600];char c[600];int main() { scanf("%s",a); scanf("%s",b);二.判断数组的大小,用c存储a+b的结果 ll lena=strlen(a); ll lenb=st原创 2021-02-02 20:25:13 · 179 阅读 · 0 评论