C
文章平均质量分 79
WhiteeI
这个作者很懒,什么都没留下…
展开
-
数据结构单链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。#include <stdio.h>#include <stdlib.h>#include "SList.h"#include <assert.h>#include <malloc.h>PNode SListBuyNode(DateTy...原创 2019-05-11 14:06:25 · 202 阅读 · 0 评论 -
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
用数组遍历的方法,遍历两遍,每一遍找到一个单独的数字#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void FindNum(int arr[], int len) { for (int i = 0; i < len; ++i) { int j = 0; for ...原创 2019-04-11 15:47:32 · 228 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>void Judge_turn(char* p1, char* p2) { assert(*p1); assert(*p2);...原创 2019-04-11 15:42:37 · 191 阅读 · 0 评论 -
递归求n的k次方
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <stdlib.h>int Second(int n,int k) { /*int sum = 1; for (int i = 1; i <= k; ++i) { sum *= n; } return sum;*/ if (k ==...原创 2019-03-28 18:19:55 · 799 阅读 · 0 评论 -
递归和非递归实现strlen
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int str(char* p) { //int length=0; //while (*p != '\0') { // ++length; // ++p; //} //return length; if (*p == ...原创 2019-03-28 17:50:25 · 159 阅读 · 0 评论 -
递归逆置字符串
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void reverse_string(char* string) { if (*string == '\0') { return 0; } else { reverse_string(string+1); ...原创 2019-03-28 17:19:15 · 480 阅读 · 0 评论 -
递归求数字每位之和
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Digitsum(int n) { if (n/10==0) { return n; } else { return n%10+Digitsum(n/10); }}int main(){ int n, ...原创 2019-03-28 16:22:04 · 1178 阅读 · 0 评论 -
递归求阶乘
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Factorial(int n) { if (n == 1) { return 1; } else { return n*Factorial (n - 1); }}int main() { int n, ...原创 2019-03-28 16:12:42 · 159 阅读 · 0 评论 -
求第n个斐波那契数
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Successione_di_Fibonacci(int n) {////非递归//int num1 = 1,num2=1;//int sum = 0,temp ;//for (int i = 1; i <= n...原创 2019-03-28 16:04:56 · 256 阅读 · 0 评论 -
函数判断素数
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Judge(int num) { int flag = 0; for (int i = 2; i < num; ++i) { if (num%i == 0) { flag = 1; } } retu...原创 2019-03-27 21:14:15 · 1696 阅读 · 0 评论 -
初始化、逆置、清空数组的函数
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void Init(int arr[]) { for (int i = 0; i < 10; ++i) { scanf("%d", &arr[i]); }}void Empty(int arr[]) { f...原创 2019-03-27 21:05:05 · 436 阅读 · 0 评论 -
实现一个函数,可以左旋字符串中的k个字符
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>void Left_turn(char* p, int k) { assert(*p); int len = strlen(p...原创 2019-04-10 17:55:24 · 243 阅读 · 0 评论 -
杨氏矩阵中查找一个数字是否存在,时间复杂度小于O(N)
有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 61 2 34 5 67 8 9因为杨氏矩阵每行每列都是递增的,所以把要找的数字跟每行的最后一个元素比较,如果比每行的最后一个元素大,就寻找下一行。如果比最后一个元素小,就寻找这行的...原创 2019-04-10 16:52:22 · 363 阅读 · 0 评论 -
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以喝多少汽水
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main() { int money = 20; int bottle = 0; while (money != 0) { bottle += money; money /= 2; } printf("%d\...原创 2019-04-11 15:49:27 · 324 阅读 · 0 评论 -
C语言模拟实现strcpy
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>char* mystrcpy(char* str1, char* str2) { assert(*str1); assert(*str2); //str1的每一个元素都赋值st...原创 2019-04-11 15:52:52 · 254 阅读 · 0 评论 -
C语言模拟实现strcat
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>char* mystrcat(char* str1,char* str2) { assert(*str1); assert(*str2); char* p = str1; //...原创 2019-04-11 15:59:12 · 169 阅读 · 0 评论 -
数据结构顺序表
线性结构是一个有序数据元素的集合,常用的线性结构有:线性表,栈,队列,双队列,数组,串等。顺序表是用一段物理地址连续的存储空间单元依次存储数据元素的线性结构。分为静态顺序表和动态顺序表。顺序表的基本操作:增删查改等操作。#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include &...原创 2019-05-10 14:39:32 · 1068 阅读 · 1 评论 -
时间复杂度和空间复杂度
一个算法的好坏取决于其运行速度与所需要的额外空间,即时间复杂度与空间复杂度。一个算法所花费的时间与其中语句的执行次数成正比例,算法中基本操作的执行次数,为算法的时间复杂度。时间复杂度不用时间来衡量,而是用基本语句的执行次数来衡量,这是因为每个计算法执行语句的速度都是不一样的,一个算法放在不同的计算机上执行会出现不同的时间,从而用基本语句的执行次数来衡量时间复杂度。计算时间复杂度的时候通常不用...原创 2019-05-06 11:37:22 · 635 阅读 · 0 评论 -
C语言思维导图
原创 2019-05-05 18:46:42 · 278 阅读 · 0 评论 -
C语言文件操作
围绕文件相关的基本操作:1.打开文件:FILE* fopen(const char* path, const char* mode)其中path为打开文件的地址,mode为打开方式,打开方式为w是写,打开方式为r为读。返回值为一个文件指针。2.关闭文件int fclose(FILE* fp);fp为关闭文件的文件指针。关闭成功返回0,否则返回-1。打开文件而没有关闭会造成资源泄漏!3...原创 2019-05-05 17:15:42 · 118 阅读 · 0 评论 -
C语言动态内存管理
void* malloc(size_t size)malloc函数用来开辟一段连续的内存空间,开辟成功返回值为这块内存空间的地址,开辟失败返回值为NULL,size为空间的大小,单位为字节。在用malloc开辟空间后要检查是否开辟内存成功,使用完这段内存后要用free(void* ptr)释放内存,否则会造成内存泄漏。void* calloc(size_t num,size_t size)c...原创 2019-05-05 15:20:31 · 230 阅读 · 0 评论 -
C语言自定义类型
C语言的自定义类型有:结构体、枚举、联合体等。结构体类型的创建通常用以下格式:struct tag { //此处的member是数据类型,可以是int,char,short,long,long long, //float,double,指针类型等,也可以是自定义类型 member list1; //成员1 member list2; //成员2 member list3;...原创 2019-05-05 12:47:43 · 721 阅读 · 0 评论 -
动态内存通讯录
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>#include <errno.h>//#define MaxPerson 300 typedef struct...原创 2019-05-05 10:19:53 · 180 阅读 · 0 评论 -
C语言实现memmove
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void* Mymemmove(void* dest, const void* src, size_t num) { if (dest == NULL || src == NULL) { return NULL; } //...原创 2019-04-19 15:48:28 · 206 阅读 · 0 评论 -
C语言实现memcpy
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void* Mymemcpy(void* dest,const void* src,size_t num) { if (dest == NULL || src == NULL) { return NULL; } //将vo...原创 2019-04-19 14:59:50 · 170 阅读 · 0 评论 -
C语言实现strcmp
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>int Mystrcmp(char* str1, char* str2) { assert(*str1); assert(*str2); while (*str1 != '\0...原创 2019-04-19 14:25:49 · 586 阅读 · 0 评论 -
C语言实现strchr
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>char* Mystrchr(char* str, char c) { assert(*str); while (*str != '\0') { if (*str == c)...原创 2019-04-15 12:07:22 · 406 阅读 · 0 评论 -
C语言实现strstr
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>char* Mystrstr(char* str1, char* str2) { assert(*str1); assert(*str2); char* temp1 = str...原创 2019-04-15 11:46:01 · 703 阅读 · 0 评论 -
函数判断闰年
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Leapyear(int year) { int flag=0; if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { flag = ...原创 2019-03-27 20:29:35 · 1052 阅读 · 0 评论 -
函数交换两个数的值
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void exchange(int* x, int* y) { int temp; temp = *x; *x = *y; *y = temp;}int main() { int a, b; scanf("%d %d"...原创 2019-03-27 20:20:54 · 1127 阅读 · 0 评论 -
任意行乘法表
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void table(int row) { for (int i = 1; i <= row; ++i) { for (int j = 1; j <= i; ++j) { printf("%d*%d=%d\t"...原创 2019-03-27 20:13:21 · 330 阅读 · 0 评论 -
a+aa+aaa+aaaa+aaaaa的值
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Add(int x) { int sum=0,t=0; for (int i = 0; i < 5; ++i) { t = (10 * t + x); //10乘t相当于每次把t向左移一位,再加上x sum ...原创 2019-03-25 14:25:45 · 2118 阅读 · 0 评论 -
输出1~999之间的水仙花数
#include <stdio.h>#include <stdlib.h>int Func(int x) { int t,ge,shi,bai; ge = x % 10; //对10取余为个位 shi =(x/10)%10; // 除10模10为十位 bai = x / 100; //除以100,为百位 if (x == (ge*ge*ge + shi*sh...原创 2019-03-25 14:22:13 · 1188 阅读 · 0 评论 -
输出一个三角图形
#include <stdio.h>#include <stdlib.h>void show() {//和乘法表逻辑相同 for (int i = 1; i <= 13; ++i) { for (int j = 1; j <= i; ++j) { printf("*"); } printf("\n"); }//此处与乘法表相反 f...原创 2019-03-25 14:15:45 · 600 阅读 · 0 评论 -
两个数的最大公约数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { int i,j,k,t,u; scanf("%d %d", &i, &j); //让j成为i和j中值最小的数 if (i<j) { t = i; i = j; j = t...原创 2019-03-18 01:32:17 · 136 阅读 · 0 评论 -
三个数从大到小排列
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { int x, y, z,t; scanf("%d %d %d",&x,&y,&z); //如果x小于y,交换x和y的值 if (x < y) { t = x; x =...原创 2019-03-18 01:24:53 · 1547 阅读 · 0 评论 -
求十个数的最大值
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//写一个返回值为整型的取最大值函数,形参为一个数组int getMax(int a[10]) { int max=a[0]; //定义最大值max为a[0] //如果a[1]比最大值大,那么a[1]就为最大值,a[2]到a[9]...原创 2019-03-18 00:59:18 · 535 阅读 · 0 评论 -
不创建临时变量交换两个变量的值
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>//写一个交换的函数void exchange(int x, int y) { x = x + y; //把x和y的和赋给x y = x - y; //把两个数的和减去y的值,即原x的值赋给y x = x - y; //把两个...原创 2019-03-18 00:15:46 · 182 阅读 · 0 评论 -
交换两个变量的值
#define _CRT_SECURE_NO_WARNINGS#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;//写一个无返回值的函数exchangevoid exchange(int x, int y) { int t; //定义中间变量t t = x; //把x的值赋给t x = y; //把y的值赋给x y = t; //...原创 2019-03-18 00:07:06 · 205 阅读 · 0 评论 -
1到 100 的所有整数中出现数字9的次数
#include <stdio.h>#include <stdlib.h>int main() { int sum = 0; //定义sum为9出现的次数 for (int i = 1; i <= 100; ++i) { //当i对10取余为9的时候或者i除以10为9的时候,说明9出现了,次数加一 // (9对10取余也为9;九十多除以10所得数的类...原创 2019-03-20 00:54:48 · 451 阅读 · 0 评论