
c语言
Young_LAS
一点一点的成长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言程序-调整数组使奇数全部都位于偶数前面
调整数组使奇数全部都位于偶数前面 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 #include<stdio.h>#include <windows.h>void Ex(int *a){ int i = 0; int L = 0; int R = 9; int b[10] = { 0原创 2017-10-29 17:24:52 · 396 阅读 · 0 评论 -
C语言- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现。
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。 代码实现(环境:Visual Studio 2017)//一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。//找出这两个数字,编程实现。#include <stdio.h>#include <stdlib.h>void find(int a[], int sz){ int i =原创 2017-11-16 09:32:25 · 432 阅读 · 0 评论 -
任意类型通用的qsort冒泡排序
代码实现(Visual Studio 2017)#include <stdio.h>#include <windows.h>static int int_cmp(void* p1, void* p2)//int型比较函数{ return *((int*)p1) > *((int*)p2);}static int float_cmp(void* p1, void* p2)//floa原创 2017-12-09 10:05:38 · 316 阅读 · 0 评论 -
如何写出让面试管满意的 string 函数
自己动手实现操作字符串的函数。 程序实现(环境:Visual Studio 2017)//写出让面试管满意的 string 函数//1.实现strcpy //2.实现strcat//3.实现strstr//4.实现strchr//5.实现strcmp//6.实现memcpy//7.实现memmove#include <stdio.h>#include <windows.h>#原创 2017-11-21 19:01:05 · 247 阅读 · 0 评论 -
数组,指针与函数之间的关系
关于数组,指针和函数的问题,先提出一组名词指针数组数组指针函数指针函数指针数组 指向函数指针数组的指针那么他们之间的联系和区别是什么呢,我们来一个个的分析:1. 指针数组 指针数组:一个存放指针的数组,首先它是一个数组,而它里面的内容是一个个的指针,例如 :int *p[5];p是一个可以存放5个指向int型指针的数组,它的结构如图所示:2.数组指针数组指针:一个指向数组的指针,本身原创 2017-11-21 20:50:28 · 508 阅读 · 0 评论 -
C语言-模拟实现strcpy
模拟实现strcpy 代码实现(环境:Visual Studio 2017)//模拟实现strcpy#include<stdio.h>#include<windows.h>void Mystrcpy(char *str1, char *str2){ int i = 0; int j = 0; while (str1[i++] = str2[j++]);}int原创 2017-11-16 18:21:18 · 214 阅读 · 0 评论 -
C语言-模拟实现strcat
模拟实现strcat 代码实现(环境:Visual Studio 2017)//模拟实现strcat#include<stdio.h>#include<windows.h>void Mystrcat(char *str1, char *str2){ int i = 0; int j = 0; while (str1[i++]); i--; while原创 2017-11-16 18:25:01 · 247 阅读 · 0 评论 -
模拟实现 strncpy( )函数
在模拟 strncpy( ) 函数之前我们先看一下它的源码声明char *strncpy( char *strDest, const char *strSource, size_t count );返回值是一个char * 指针,包含三个参数,一个 char * 的目标字符串,一个 const char * 的不允许改变的其内容的常量指针,和一个要拷贝字符个数的无符号整形,意思是将strSourc原创 2017-11-24 13:06:24 · 1608 阅读 · 0 评论 -
模拟strncmp( )函数
代码实现 (环境 Visual Studio 2017)//1.模拟实现strncmp#include <stdio.h>#include <windows.h>#include <string.h>#include <assert.h>#pragma warning( disable : 4996) int My_strncmp(char * dest, const char *src,原创 2017-11-24 13:38:44 · 392 阅读 · 0 评论 -
模拟实现strncat( )函数
代码实现(环境:Visual Studio 2017)//1.模拟实现strncpy#include <stdio.h>#include <windows.h>#include <string.h>#include <assert.h>#pragma warning( disable : 4996) char * My_strncat(char * dest, const char *src原创 2017-11-24 13:20:29 · 811 阅读 · 0 评论 -
C语言实现通讯录
代码实现(环境 Visual Studio 2017)#include <stdio.h>#include <windows.h>#include <string.h>#pragma warning(disable: 4996)static int People_num_all = 0;//通讯录人数struct Address_Lsit{ int age; int pho原创 2017-11-24 16:35:12 · 685 阅读 · 0 评论 -
C语言- 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水?
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。 整体思路:用递归的方式实现,每一次递归表示本次可以购买汽水的瓶数(M)。首先判断M是否是能够全部兑换完(M为偶数),分两种情况: 如果可以(M为偶数),再次进行 M/2 的递归,表示本次M个瓶子兑换 M/2 个汽水; 如果不可以(M为奇数),在这里我们进行一个判断(flag:看在本次兑换之前的兑换原创 2017-11-16 13:22:21 · 3213 阅读 · 4 评论 -
结构体知识总结
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。结构体类型创建 结构体的声明使用的是 struct 关键字,它的声明格式如下:struc原创 2017-11-25 22:44:18 · 579 阅读 · 0 评论 -
C语言实现通讯录-动态内存
在之前的基础上,通过动态内存来进行优化,避免了内存的浪费,更加灵活的实现管理,且思路简单,只需将原来的数组改为指针,再使用 realloc 函数来进行内存分配。 优化方式如下:首先将struct Address_Lsit AL[1000];改成了struct Address_Lsit *AL = NULL;数组空间是固定的所以改成用指针的方式,这样方便我们来分原创 2017-11-25 20:11:37 · 521 阅读 · 0 评论 -
C语言 文件IO的使用
简单介绍C语言文件操作函数的用法(可以直接使用): fopen fclose fprintf fscanf fputc fgetc fread fwrite 头文件#include函数使用fopen 函数原型: FILE *fopen( const char *filename, const char *mode原创 2018-01-22 17:10:57 · 7573 阅读 · 1 评论 -
main函数的return
最近的一段时间在return这个关键字进行了一点的探究,主要是涉及到调用return之后函数会进行什么操作。return是一个关键字,调用return会进行函数的返回,将后面的参数返回给调用者(main函数也是被调用的),并销毁调用堆栈。以上是return函数的作用,接下来主要看一下main函数的return之后会发什么。测试代码如下:int main(){ return...原创 2018-07-16 10:14:35 · 11040 阅读 · 0 评论 -
C语言程序-可变参数(3)模拟实现printf函数
要求: 模拟实现printf函数,可完成下面的功能 能完成下面函数的调用。 print(“s ccc d.\n”,”hello”,’b’,’i’,’t’,100); 函数原型: print(char *format, …) 代码实现(Visual Studio 2017)//模拟实现printf函数,可完成下面的功能////能完成下面函数的调用。 //pri原创 2017-11-15 22:41:58 · 320 阅读 · 0 评论 -
C语言代码-可变参数(2)求最大值
使用可变参数,实现函数,求函数参数的最大值 代码实现(环境:Visual Studio 2017)//使用可变参数,实现函数,求函数参数的最大值。#include<stdio.h>#include<windows.h>#include<stdarg.h>int maxarg(int n, ...){ va_list arg; va_start(arg, n); i原创 2017-11-15 22:22:55 · 431 阅读 · 0 评论 -
C语言程序-用递归实现n^k
代码实现 //编写一个函数实现n^k,使用递归实现#include <stdio.h>#include <windows.h>#pragma warning(disable:4996);int factorial(int n,int k){ if (k == 1) { return n; } return n * factorial(n, k原创 2017-11-07 14:09:34 · 372 阅读 · 0 评论 -
C语言实现-杨氏矩阵
//杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N); 数组: 1 2 3 2 3 4 3 4 5 1 3 4 2 4 5 4 5 6#include<stdio.h>#include <windows.h>int fand(int arr[][3], int a,i原创 2017-11-01 18:06:17 · 342 阅读 · 0 评论 -
C语言程序-位操作
1.unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果原创 2017-10-27 00:27:37 · 699 阅读 · 0 评论 -
C语言实现-递归和非递归求第n个斐波那契数
代码实现 //递归和非递归分别实现求第n个斐波那契数。#include <stdio.h>#include <windows.h>#pragma warning(disable:4996); Fibonacci_DG(int n){ if (n < 3) { return 1; } return Fibonacci_DG(n - 1)原创 2017-11-07 13:55:06 · 418 阅读 · 0 评论 -
C语言程序-判断一个字符串是否为另外一个字符串旋转之后的字符串
整体思路:根据之前的文章C语言实现字符串左旋,那么这就很简单了,只需要判断s2字符串是不是双倍s1字符串的字串就可以了,在之前的基础上加上一个strstr()函数就可以进行判断了。但前提必须是s2字符串的长度和s1字符串的长度一样,才有比较的必要,因此在之前进行一次字符长度的比较,如果一样长,再进行判断。代码如下//例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abc原创 2017-11-06 13:16:28 · 629 阅读 · 0 评论 -
C语言实现-字符串左旋
字符串左旋,如 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 整体思路:一个原始数组(如ABCD),另外创建一个双倍于原始数组的数组(如ABCDABCD),再根据要旋转的字符数(如2)从双倍数组输出原始字符串的个数(4),即在ABCDABCD中 从第三位的‘C’开始输出4位停止,相当与输出字符串数组 (AB CDAB CD)中的CDAB。代码如下// 实现一个函原创 2017-11-05 23:39:30 · 490 阅读 · 0 评论 -
C语言程序-输入一个非负整数,返回组成它的数字之和
要求:输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 代码实现//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include <stdio.h>#include <windows.h>#pragma war原创 2017-11-07 14:14:53 · 6298 阅读 · 0 评论 -
Linux下的C语言-小白篇(一)
Linux下的C语言-小白篇(一)C语言对于大家来说并不陌生,编写C语言更是不在话下,如果你说自己写不出多么惊艳的C代码,那起码还是能写出一个“Holle Word”的嘛,今天我将带大家更进一步的了解C语言,从基层了解C语言的整个形成过程,其中包括C的编辑,编译,链接等方面。在这里如果现在让你来编一个C程序,大家想到的肯定是使用VC++6.0或者是Visual Studio系列等Windons下的I原创 2017-10-22 21:02:16 · 534 阅读 · 0 评论 -
C语言程序-将参数字符串中的字符反向排列
编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。 代码实现 (环境:Visual Studio 2017) //编写一个函数reverse_string(char * string)(递归实现)//实现:将参数字符串中的字符反向排列。//要求:不能使用C函原创 2017-11-14 22:57:27 · 499 阅读 · 0 评论 -
C语言程序-递归和非递归分别实现strlen
递归和非递归分别实现strlen 代码实现 (环境:Visual Studio 2017)//递归和非递归分别实现strlen#include<stdio.h>#include<windows.h>int D_StrL(char *str) //递归{ if (*str == '\0') { return 0; } return 1 + D原创 2017-11-14 23:12:44 · 280 阅读 · 0 评论 -
C语言程序-递归和非递归分别实现求n的阶乘
要求: 递归和非递归分别实现求n的阶乘 代码实现 (环境:Visual Studio 2017)//递归和非递归分别实现求n的阶乘 #include<stdio.h>#include<windows.h>int D_N(int n) //递归{ if (n == 1) { return 1; } return n * D_N(n-1);原创 2017-11-14 23:21:16 · 5306 阅读 · 0 评论 -
C语言程序-递归方式实现打印一个整数的每一位
要求:用递归方式实现打印一个整数的每一位 代码实现 (环境:Visual Studio 2017)//递归方式实现打印一个整数的每一位#include<stdio.h>#include<windows.h>void D_S(int n) //递归{ if (n < 10) { printf("%d ", n); return 0;原创 2017-11-14 23:35:10 · 915 阅读 · 0 评论 -
写冒泡排序可以排序多个字符串。
代码实现(Visual Studio 2017)#include <stdio.h>#include <windows.h>#include <string.h>#pragma warning(disable: 4996)void Exchange(char * str1, char *str2){ char str_e[10] = "0"; strcpy(str_e, st原创 2017-11-29 21:32:00 · 498 阅读 · 0 评论 -
C语言代码-可变参数(1)求平均值
使用可变参数,实现函数,求函数参数的平均值。 代码实现(环境:Visual studio 2017)//使用可变参数,实现函数,求函数参数的平均值。#include<stdio.h>#include<windows.h>#include<stdarg.h>int ave(int n, ...){ va_list arg; va_start(arg, n); int原创 2017-11-15 22:07:58 · 1057 阅读 · 0 评论 -
函数栈帧
函数的调用过程是在栈上完成的,由有操作系统开辟栈空间。主要用到三个寄存器: EIP 用来存放函数地址 EBP:栈底寄存器 ESP:栈定寄存器函数调用的过程:如:main函数调用fun的过程:int fun(int a, int b){ return a + b;}int main(){ int a = 1; int b = 2; ...原创 2018-08-03 17:51:45 · 382 阅读 · 0 评论