C
RyanMiaoCY
研究僧
展开
-
结构体/位段/枚举/联合
#include <stdio.h>#include <stdlib.h>#include <string.h>/*1.结构体类型创建2.结构体初始化3.结构体内存对齐4.位段,位段计算机大小5.枚举+联合*/int main(){ //1.结构体类型创建 struct Stu { char name[20];//名字 ...原创 2019-11-18 21:51:36 · 97 阅读 · 0 评论 -
字符串函数(3)
/*1.模拟实现strncpy2.模拟实现strncat3.模拟实现strncmp*/#include<stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>char * my_strncpy(char* dst, const char* src,size_...原创 2019-11-17 21:54:34 · 106 阅读 · 0 评论 -
指针
1.理解数组指针本质是一个指针,指向一个数组,指针存放的是数组的地址。2.理解函数指针和定义函数指针也是指针,它指向的是一个函数。void (*pfun1)()//pfun1先和*结合,说明pfun1是指针,指针指向的是一个函数,指向的函数无参数,返回值 类型为void。3.理解函数指针数组和定义,转移表函数地址可以存放在指针中,把这个函数指针放到数组中,这样的数组就叫做函数指针数组...原创 2019-11-17 19:43:53 · 111 阅读 · 0 评论 -
指针与数组
1.一级指针#include <stdio.h> void print(int *p, int sz)//一级指针传参,直接对指针指向的数组进行操作{ int i = 0; for(i=0; i<sz; i++) { printf("%d\n", *(p+i)); } } int main(...原创 2019-11-17 15:34:39 · 129 阅读 · 0 评论 -
字符串函数实现(2)
1.实现strcpy2.实现strcat3.实现strstr4.实现strchr5.实现strcmp6.实现memcpy7.实现memmove/*1.实现strcpy 2.实现strcat 。在2019.11.11项目中3.实现strstr,功能:如果一个字符串是另一个字符串的一部分,返回字符串起始指针,否则返回空指针4.实现strchr,功能:在参数 str 所指向的字符串中...原创 2019-11-17 14:47:16 · 152 阅读 · 0 评论 -
字符串函数实现(1)
1.模拟实现strcpy2.模拟实现strcat#include<stdio.h>#include <stdlib.h>#include <assert.h>char * my_strcpy(char* dst,const char* src){ assert(dst && src); char * ret = dst; wh...原创 2019-11-17 14:45:00 · 97 阅读 · 0 评论 -
喝汽水问题
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,一共可以喝多少瓶汽水?#include<stdio.h>#include <stdlib.h>int main(){ int money = 20; int total = money; int empty = money; while (empty >= 2) { total += e...原创 2019-11-17 14:43:35 · 105 阅读 · 0 评论 -
数组中的数字查找
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。找出这两个只出现一次的数字。#include <stdio.h>#include <stdlib.h>int num1 = 0, num2 = 0;int number_check(int * arr,int length){ int arrnum1 = arr[0]; for (int i =...原创 2019-11-17 14:42:27 · 269 阅读 · 0 评论 -
字符串旋转与相等判断
1.实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>//方法1.把后一位字符一次赋给前一位,并把最前面的位取出放到最后一位void rotate(char* arr,i...原创 2019-11-10 20:17:03 · 340 阅读 · 0 评论 -
杨氏矩阵查找数字
有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 61 2 34 5 67 8 9#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdli...原创 2019-11-04 22:12:43 · 111 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。/*调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。*/#include <stdio.h>#include <...原创 2019-11-04 22:11:32 · 118 阅读 · 0 评论 -
句子逆序,单词正常
有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。提示:student a am ii ma a tnedutsi am a student/*有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a stu...原创 2019-11-04 22:10:20 · 124 阅读 · 0 评论 -
找出出现一次的数字
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)/*一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)*/#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <ma...原创 2019-11-04 22:09:22 · 326 阅读 · 0 评论 -
两个数的平均值
.不使用(a+b)/2这种方式,求两个数的平均值。/*不使用(a+b)/2这种方式,求两个数的平均值。*/#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <math.h>//对于2,4两个数,它们的二进制表示为0010,0100// 001...原创 2019-11-04 22:07:28 · 270 阅读 · 0 评论 -
对一个值的二进制位模式从左到右翻转
/*编写函数: unsigned int reverse_bit(unsigned int value);这个函数的返回值是value的二进制位模式从左到右翻转后的值。*/#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <math.h>un...原创 2019-11-04 22:06:33 · 217 阅读 · 0 评论 -
数组参数
数组传给函数时,在C中不存在传数组!#include <stdio.h>#include <stdlib.h>#include <string.h>void test01(int *arr, int n)//常用方式{ printf("test01成功调用!\n");}void test02(int arr[]){ printf("test0...原创 2019-11-01 19:24:05 · 292 阅读 · 0 评论 -
指针
指针:1.指针就是个变量,用来存放地址,地址唯一标识一块内存空间。2. 指针的大小是固定的4/8个字节(32位平台/64位平台)。大小与类型无关!!!3. 指针是有类型的,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。字符指针多种定义方式:int main() { char ch = 'w'; char *pc = &ch; //字符...原创 2019-10-30 22:23:30 · 100 阅读 · 0 评论 -
数据在内存中的存储
[https://blog.csdn.net/weixin_45663523/article/details/102761197]原创 2019-10-27 22:30:33 · 166 阅读 · 1 评论 -
打印杨辉三角
打印杨辉三角#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){ int n = 0; char arr[50]; char lastarr[50] = {1,1,1,1}; printf("请输入要打印几行:\n");//按照上述不超过50行 sca...原创 2019-10-26 15:53:14 · 135 阅读 · 0 评论 -
比赛问题
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。名次唯一性,按照一半对的条件遍历所有选手说的情况,所有名次不相同!#include<stdio.h>#include<st...原创 2019-10-26 15:51:54 · 294 阅读 · 0 评论 -
查找罪犯
查找罪犯:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。凶手唯一性,三真一假和必须是3:#include<stdio.h>#include<stdlib.h>in...原创 2019-10-26 15:49:20 · 291 阅读 · 0 评论 -
C操作符
C操作符1.算数操作符加减乘除模+ - * / %加减乘除可以作用于整数和浮点数。模只针对整数。除法运算有浮点数参与,即为浮点数运算。2.移位运算符(不可以移动负数位的位数,如:num<<-1,这是标准未定义的!)<<左移操作符:左边抛弃,右边补0>>右移操作符:1.逻辑移位:左边补0,右边抛弃2.算术移位:左边填符号位,右边丢弃3.位...原创 2019-10-23 20:34:01 · 131 阅读 · 0 评论 -
C初阶作业
注册博客1.打印100~200 之间的素数输出乘法口诀表判断1000年—2000年之间的闰年2.给定两个整形变量的值,将两个值的内容进行交换。不允许创建临时变量,交换两个数的内容(附加题)3.求10 个整数中最大值。4.将三个数按从大到小输出。5.求两个数的最大公约数。3.将数组A中的内容和数组B中的内容进行交换。(数组一样大)计算1/1-1/2+1/3-1/4...原创 2019-10-21 14:46:16 · 242 阅读 · 0 评论 -
扫雷
扫雷#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <time.h>#define MAX_ROW 9#define MAX_COL 9#define MAX_MINE_COUNT 10char mine_map[MAX_ROW][MAX...原创 2019-10-19 21:43:12 · 139 阅读 · 0 评论 -
三子棋
三子棋#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#define MAX_ROW 3//行#define MAX_COL 3//列char chess_board[MAX_ROW][MAX_COL];void Init();void PrintfChessBoa...原创 2019-10-19 21:41:34 · 101 阅读 · 0 评论 -
C中关于数组的一些问题
1.常量定义int arr[4]={0};//这里的4必须是一个常量常量定义方式有:1.宏定义 #define SIZE 4此时可以使用为int arr[SIZE]={0};2.枚举enum size{SIZE=4};3.const修饰: const int size=4;此时的const修饰的常量不可以用作数组的常量表达式!!!这是因为C语言本身并未处理好数组初始长度...原创 2019-10-13 21:42:16 · 136 阅读 · 0 评论 -
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:7#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int diff_num(int a,int b){ int a_arr[32] = { 0 }, b_ar...原创 2019-10-13 20:36:08 · 277 阅读 · 0 评论 -
输出一个整数的每一位。
输出一个整数的每一位。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void print_num(int a){ if (a<9) { printf("%d ", a); } else { print_num(a/10)...原创 2019-10-13 20:22:56 · 74 阅读 · 0 评论 -
.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void print_num(unsigned value) { int count = 0;//二进制数字的位数 int a[32] = { ...原创 2019-10-13 20:16:21 · 187 阅读 · 0 评论 -
返回参数二进制中1的个数
返回参数二进制中1的个数。比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数}#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int count_one_bits(...原创 2019-10-13 19:20:31 · 172 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
递归方式实现打印一个整数的每一位#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void recursion_printf(int n){ if (n < 10) { printf("%d ", n); } else { recursion_prin...原创 2019-10-11 21:48:24 · 93 阅读 · 0 评论 -
递归和非递归分别实现求n的阶乘
递归和非递归分别实现求n的阶乘#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int recursion_factorial(int n){ if (n==1) return 1; return n*recursion_factorial(n-1);}int my...原创 2019-10-11 21:17:12 · 106 阅读 · 0 评论 -
递归和非递归分别实现strlen
递归和非递归分别实现strlen#include <stdio.h>#include <stdlib.h>#include <string.h>int recursion_strlen(char * string){ if ('\0' == *(string)) return 0; return 1 + recursion_strlen(++s...原创 2019-10-11 21:03:49 · 80 阅读 · 0 评论 -
递归将参数字符串中的字符反向排列
编写一个函数 reverse_string(char * string)递归实现将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。#include <stdio.h>#include <stdlib.h>#include <string.h>//先定义一个指针型char字符串,函数内部先调用自己,直到找到一个字符为’\0’时开始往...原创 2019-10-11 20:26:50 · 199 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <math.h>int mypow(int x, int y)//整数的乘方运算{ int i; int res = 1;...原创 2019-10-03 16:55:28 · 213 阅读 · 0 评论 -
0-999水仙花数输出
求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+53+33,则153是一个“水仙花数”。在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三位数...原创 2019-10-03 16:16:15 · 191 阅读 · 0 评论 -
字符循环输出
1.在屏幕上输出以下特定图案:* ******** ******* ********* *********** ************* *********** ********* ******* ***** *** * 分析:*第一行1个***第二行3个*****第三行5个*******第四行7个*********第五行9个***********第六...原创 2019-10-03 16:06:56 · 1397 阅读 · 0 评论 -
Git安装
1.从官网下载git链接: https://git-scm.com/download/win和GUI软件包链接: https://git-scm.com/downloads/guis2.原创 2019-09-30 18:54:51 · 112 阅读 · 0 评论 -
C学习:第三次
将数组A中的内容和数组B中的内容进行交换。(数组一样大)#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void main(){ int i; int arrA[] = {1,2,3,4,5}; int arrB[] = { 9,4,2,4,8 }; int ar...原创 2019-09-25 22:19:50 · 112 阅读 · 0 评论 -
C学习:第二次
给定两个整形变量的值,将两个值的内容进行交换。 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void main(){ int a, b, temp; printf("请输入整型变量a的值:"); scanf("%d",&a); printf("请输入整...原创 2019-09-25 20:48:29 · 106 阅读 · 0 评论