
Learn C
碎碎念啊
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
喝汽水
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水。编程实现。#include <stdio.h>#include <stdlib.h>int main(){ int money = 0; int price = 1;//单价 int empty = 2;//空瓶子数 int total = 0;//喝汽水数 printf("你可以买...原创 2020-02-24 22:54:37 · 119 阅读 · 0 评论 -
移除元素
题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。方法一int removeElement(int* nums, int numsSize, int val){ int i ...原创 2020-02-24 22:51:07 · 92 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>void fun(int n){ if (n > 9) { fun(n / 10); } printf("%d ", n % 10);}int main(){ int n; printf("请输入数...原创 2019-07-22 15:11:24 · 99 阅读 · 0 评论 -
递归和非递归分别实现求n的阶乘
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>//递归实现求n的阶乘int fun(int n){ if (n == 1){ return 1; } else{ return n * fun(n - 1); }}int main(){ int n;...原创 2019-07-22 15:09:48 · 130 阅读 · 0 评论 -
递归和非递归分别实现strlen
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>//非递归代码int mystrlen(char* string){ int count = 0; while (*string != '\0') { count++; string++; } retur...原创 2019-07-22 15:08:14 · 120 阅读 · 0 评论 -
编写一个函数 reverse_string(char * string)(递归实现)
编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>void reverse_string(char* stri...原创 2019-07-22 15:05:54 · 315 阅读 · 0 评论 -
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1 + 7 + 2 + 9,它的和是19.#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>int DigitSum(int n){ if (...原创 2019-07-22 15:03:51 · 182 阅读 · 0 评论 -
编写一个函数实现n^k,使用递归实现
编写一个函数实现n^k,使用递归实现#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>int fun(int n, int k){ if (n == 0) { return 0; } if (n == 1) { return 1; } if (k ==...原创 2019-07-22 15:01:19 · 109 阅读 · 0 评论 -
递归和非递归分别实现求第n个斐波那契数
递归和非递归分别实现求第n个斐波那契数。1,1,2,3,5,8,13斐波那契数列由0和1开始,系数就由之前的两数相加。(Fibonacci)#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>//递归方法实现求第n个斐波那契数int fib(int n){ if (n...原创 2019-07-22 14:58:58 · 294 阅读 · 0 评论 -
三子棋游戏
game.h//初始化棋盘void InitBoard(char board[ROW][COL], int row, int col);//打印棋盘void DisplayBoard(char board[ROW][COL], int row, int col);//玩家落子void PlayerMove(char board[ROW][COL], int row, int col)...原创 2019-07-22 15:22:53 · 113 阅读 · 0 评论 -
模拟实现长度不受限制的字符串函数
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>模拟实现strcpy(字符串复制)我们先来了解一下strcpy本身具有哪些特点?1.源字符串必须以 ‘\0’ 结束;...原创 2019-07-31 23:17:52 · 254 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>void swep(int* x, int* y)...原创 2019-07-28 00:03:50 · 111 阅读 · 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 1#include <stdio.h>#include &...原创 2019-07-28 00:09:49 · 110 阅读 · 0 评论 -
实现memcpy和memmove库函数
实现memcpymemcpy函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,即内存拷贝函数。说明:void * memcpy ( void * destination, const void * source, size_t num );1.函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。2.这个函数在遇到 ‘\...原创 2019-08-19 15:26:26 · 250 阅读 · 0 评论 -
指针和数组
一、指针是什么?在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。总结:指针是用来存放地址的,地址是唯一标示一块地址空间的。指针的大小在32位平台是4个字节,在...原创 2019-08-15 16:59:54 · 330 阅读 · 0 评论 -
实现库函数strstr和strchr
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <assert.h>原创 2019-08-17 17:05:39 · 158 阅读 · 0 评论 -
模拟实现qsort
qsort函数功 能: 使用快速排序例程进行排序。头文件: stdlib.h用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));参数:待排序数组首地址数组中待排序元素数量各元素的占用空间大小指向函数的指针,用于确定排序的顺序qsort是c语言一个标准库中快...原创 2019-08-28 15:48:23 · 102 阅读 · 0 评论 -
长度受限制的字符串函数
strncpystrncpy是c语言中的一个函数,它的功能是将字符串src中最多n个字符复制到字符数组dest中。(它并不像strcpy一样只有遇到NULL才停止复制,而是多了一个条件停止,就是说如果复制到第n个字符还未遇到NULL,也一样停止),返回指向dest的指针。头文件:#include “string.h”原型:char *strcpy(char *dest, char *src...原创 2019-09-15 23:32:29 · 655 阅读 · 0 评论 -
重组字符串
有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <stri...原创 2019-07-26 00:07:20 · 716 阅读 · 0 评论 -
练习
1.不使用(a + b) / 2这种方式,求两个数的平均值。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>int main(){ int a = 0; int b = 0; int ave = 0; printf("请输入你想要求平均值的两个数:"); sc...原创 2019-07-26 00:04:29 · 123 阅读 · 0 评论 -
将一个数字的二进制位从左到右翻转
编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:255013...原创 2019-07-25 23:59:16 · 327 阅读 · 0 评论 -
练习
#include<stdio.h>1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)int main(){ int i, j, k; int A[3], B[3]; printf("请输入3个数字:\n"); for (i = 0; i < 3; i++) { scanf("%d", &A[i]); } pri...原创 2019-07-15 21:49:54 · 129 阅读 · 0 评论 -
练习
#include <stdio.h>1.给定两个整型变量(i = 2, j = 5)的值,将两个值的内容进行交换int main(){ int i = 2, j = 5, k; k = j; j = i; i = k; printf("i = %d , j = %d\n", i, j); return 0;}2.不允许创建临时变量,交换两个数的内容...原创 2019-07-15 20:32:41 · 119 阅读 · 0 评论 -
练习
用*打印一个菱形#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ int i ,j, k; for (i = 0; i < 7; i++) { for (j = 0; j < 7 - (i + 1); j++) { printf...原创 2019-07-15 22:02:59 · 181 阅读 · 0 评论 -
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>//获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。int main(){ int num = 0; int i = 0; printf("请输入想输出的整数:"); scanf("%d", &...原创 2019-07-23 16:49:04 · 163 阅读 · 0 评论 -
输出一个整数的每一位
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>//输出一个整数的每一位int main(){ int num = 0; printf("请输入想输出的整数:\n"); scanf("%d", &num); for (int i = 0; i <=...原创 2019-07-23 16:42:57 · 128 阅读 · 0 评论 -
返回参数二进制中 1 的个数的函数
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>返回参数二进制中 1 的个数的函数.比如:15的二进制表达为0000 1111,其中有4个1.程序原型:int count_one_bits(unsigned int value){返回 1的位数}int main()...原创 2019-07-23 16:46:17 · 231 阅读 · 0 评论 -
两个整数的二进制表达有多少位不同
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子 :1999 2299 输出例子 : 7int main(){ int a = 0; int b = 0; int count = ...原创 2019-07-23 16:48:25 · 710 阅读 · 0 评论 -
C语言操作符总结
要学习操作符,第一步就是了解操作符。首先,操作符是什么?“操作符”是嵌在每一条指令中的,也就是说指令系统的每一条指令都至少会有一个操作符。操作符又可以分为十个大类:算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结构成员现在再来详细介绍每一种操作符:1.算术操作符符号:+ - * / ...原创 2019-07-23 23:10:48 · 108 阅读 · 0 评论 -
练习
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>////1.完成猜数字游戏。///oid meun()//{// printf("*******************************...原创 2019-07-16 21:16:02 · 179 阅读 · 0 评论 -
关于左旋字符的两个问题
实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <assert.h>int my_strlen(const char* arr)...原创 2019-07-29 15:08:51 · 89 阅读 · 0 评论 -
用编程确定比赛结果
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,用编程确定比赛的名次。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include &...原创 2019-07-24 19:08:14 · 341 阅读 · 0 评论 -
谁是凶手
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。通过题目可以看出#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#includ...原创 2019-07-24 19:27:40 · 344 阅读 · 0 评论 -
打印杨辉三角
杨辉三角,是二项式系数在三角形中的一种几何排列。中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。由图我们可以看出...原创 2019-07-24 19:51:50 · 212 阅读 · 0 评论 -
练习
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>//1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,//输入9,输出9 * 9口诀表,输入12,输出12 * 12的乘法口诀表。void fun(int x){ int i, j; for ( i = 1; i <= x; i++) { ...原创 2019-07-17 20:57:44 · 119 阅读 · 0 评论 -
扫雷游戏
先简单过一下扫雷的游戏过程,方便我们接下来写代码。首先需要一个菜单界面,再创建两个棋盘,然后将棋盘打印出来,接下来就是玩家输入坐标,排查炸弹,这里,扩展地写了一个展开函数,最后,还有最重要的一步,在游戏过程中判断输赢。下面我们开始写代码,这里我们尽可能创建函数来完成游戏的功能:game.h#define _CRT_SECURE_NO_WARNINGS 1#define ROW 9#...原创 2019-07-30 16:04:59 · 104 阅读 · 0 评论 -
找数字
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <assert.h>int Find(int arr[], int sz){ assert(arr ...原创 2019-07-30 23:12:25 · 241 阅读 · 0 评论 -
练习
#include <stdio.h> #include <stdlib.h> 1.打印100~200之间的素数 int main() { int = 0; int count = 0; for(i = 100; i <= 200; i++) { int j = ...原创 2019-07-14 23:06:10 · 157 阅读 · 0 评论