![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
Huayra221
这个作者很懒,什么都没留下…
展开
-
C语言实现快速排序(递归)
#include<stdio.h>void Split(int left,int a[],int right);int Quicksort(int left,int a[],int right);int main(){ int N; scanf("%d",&N); int a[N]; int i; for(i=0;i<N;i++) scan...原创 2018-10-08 20:59:01 · 3481 阅读 · 0 评论 -
判断两个浮点数的大小
判断两个浮点数的大小时可用 < 和 > 但不可用 != 和 ==double a, b;scanf("%lf%lf", &a, &b);//判断a与b是否相等if (fabs(a - b) <= 1e-7) printf("a = b");else printf("a != b"); ...原创 2018-10-14 15:03:56 · 1710 阅读 · 0 评论 -
C语言实现二分查找
二分查找的时间复杂度为 O(logn)代码如下:#include<stdio.h>int BinarySearch(int right,int a[],int k,int left);int main(){ int a[7]={1,5,7,9,13,45,79}; int k; scanf("%d",&k); int position=Binar...原创 2018-10-07 15:49:02 · 163 阅读 · 0 评论 -
将n个元素存储在顺序表中,删除指定的元素item,要求时间复杂度为O(n),空间复杂度为O(1).
#include<stdio.h>int main(){ int n,item; scanf("%d%d",&n,&item); int count_a=0,i; int a[n]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) if(a[i]!=it...原创 2018-10-07 15:39:44 · 1800 阅读 · 0 评论 -
使用malloc函数实现二维数组的动态分配
注意:动态分配二维数组时一定不能直接同时分配行和列,要按维分配,即先分配行,后分配列。代码如下:int **a; //注意a为二维指针int m, n, i;scanf("%d%d", &m, &n);//m 为行,n 为列a = (int **)(malloc(sizeof(int *)*m)); //先分配行for (i = 0; i < m; i++...原创 2018-10-13 15:23:00 · 1873 阅读 · 0 评论 -
括号匹配 (栈实现)自动忽略其他字符
#include<stdio.h>#include<stdlib.h>typedef struct StackNode{ char data; struct StackNode *next;}StackNode,*LinkStack;void Matching(bool *judge);void push(LinkStack *K,char ch);...原创 2018-08-02 09:52:36 · 155 阅读 · 0 评论 -
一些小的知识点
1.malloc calloc 等内存分配函数所获得的内存块都来自一个称为 堆(heap)的存储池。内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。 2.void *类型的指针可以与任意类型的指针之...原创 2018-08-09 19:14:52 · 201 阅读 · 0 评论 -
使用单链表实现在输入时对数据进行排序(由小到大)
//实现在输入时自动排序(由小到大) PNode *CreateList(int n){ Polynomia P; PNode *pre,*q,*s; P=(Polynomia)(malloc(sizeof(PNode))); P->next=NULL; int i; printf("Enter coef and expn(共%d组): ",n); for(i=0...原创 2018-07-20 09:09:34 · 4831 阅读 · 0 评论 -
快速排序算法
//快速排序 #include<stdio.h>#define N 10void quicksort(int *a,int *low,int *high);int *split(int *a,int *low,int *high);int main(){ int a[N]; int *low=a,*high=a+N-1; int i=0; for(;i<...原创 2018-07-13 16:15:16 · 138 阅读 · 0 评论 -
实现有序表的合并
//单链表实现 #include<stdio.h>#include<stdlib.h>#define N 10#define M 5typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;LNode *CreateList(int n);void MergeList...原创 2018-07-19 15:21:43 · 800 阅读 · 0 评论 -
使用单链表实现一般集合的并集问题(最后表中无相同元素)
#include<stdio.h>#include<stdlib.h>#define N 5#define M 3typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList;LNode *CreateList(int n);void GetElem(LNode *list...原创 2018-07-19 15:15:12 · 876 阅读 · 0 评论 -
在数组中寻找最大和第二大的元素
#include<stdio.h>#define N 5void f(int a[],int n,int *l,int *s_l);int main(){ int a[N],l,s_l,i; for(i=0;i<N;i++) scanf("%d",&*(a+i)); f(a,N,&l,&s_l); printf("l=...原创 2018-07-06 20:38:35 · 1189 阅读 · 0 评论 -
关于数组下标与个位数字(0-9)之间关系的问题
Problem 1: 检查一个整数中重复出现的数字,若有重复数字则显示 repeated;否则显示 no repeated.本题目可以使用bool值的数组来解决:#include<stdbool.h>#include<stdio.h>int main(){ bool a[10]={false};//初始化数组 使所有值均为false(0) int digit,n...原创 2018-06-17 23:32:23 · 2035 阅读 · 0 评论 -
字符串求值(完整版)
代码如下:#include<stdio.h>#include<stdbool.h>#include<stdlib.h>#include<math.h>#include<Windows.h>typedef struct StackNode1{ char character; struct StackNode1 *ne...原创 2018-10-27 17:53:39 · 582 阅读 · 0 评论