c语言
Alicesa
略懂c#,c,php后端语言,
略懂vue,js前端语言,
略懂服务器Node语言
展开
-
统计子串出现次数
int Found(char* a, char* b) { int count = 0; char* p = a, * q; while (*p) { q = strstr(p,b); //该函数返回在 a 中第一次出现 b 字符串的位置,如果未找到则返回 null。 if (q == NULL)//如果没有在剩余的字符串中没有找到则返回null退出; break; p = q + strlen(b);//找到一次没有退出证明还可以继续查找。 /原创 2021-07-05 17:41:11 · 713 阅读 · 0 评论 -
寻找下一个素数
int i = 2, n = 0, flg = 1; scanf("%d", &n); while (n++) { i = 2;//如果不是上一个值不是素数刷新i的值继续试除下一个数; flg = 1;//刷新标志符; while (i < n) { if (n % i == 0) { flg = 0; break; } i++; } if (flg == 1) { break; } } print原创 2021-07-05 16:55:21 · 785 阅读 · 0 评论 -
约瑟夫数优化算法
普通int NSf(int *arr, int m){ int number=0,d = 10; int loop = 1; for (int i = 0; i < 10; i++) { if (arr[i]>0) { loop++;//不为0说明未出列可以报数 if (loop==m) { printf("GETout""%d\n", arr[i]); arr[i] = 0;//报到3了出局 number++;//统计个数原创 2021-07-05 16:53:51 · 161 阅读 · 0 评论 -
验证偶数可以被两个素数和详解
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-07-05 16:40:19 · 352 阅读 · 0 评论 -
给定某个正整数 n,求其素因子分解结果 所谓素因子分解就是找这个数的所有约 数并且约数是素数
int i=2,n = 0; scanf("%d", &n); while (1) { for (i = 2; i <= n; i++)//能被i整除的数那么肯定能被i的倍数整除。从而保证所有的因子都是素数 { if (n % i == 0) { printf("%d ", i); n = n / i;//每次因数分解完一个需除去该因子 break;//在...原创 2021-07-05 16:39:48 · 1569 阅读 · 0 评论 -
水手分椰子之穷举法
3.五个水手来到一个岛上,采了一堆椰子后,因为疲劳都睡着了。一段时间后,第一个水手醒来, 悄悄地将椰子等分成五份,多出一个椰子,便给了旁边的猴子,然后自己藏起一份,再将剩下的椰子重新合在一起,继续睡觉。不久,第二名水手醒来,同样将椰子了等分成五份,恰好也多出 一个,也给了猴子。然而自己也藏起一份,再将剩下的椰子重新合在一起。以后每个水手都如此 分了一次并都藏起一份,也恰好都把多出的一个给了猴子。第二天,五个水手醒来,发现椰子少 了许多,心照不喧,便把剩下的椰子分成五份,恰好又多出一个,给了原创 2021-07-05 16:39:35 · 895 阅读 · 0 评论 -
二维数组外围元素相加,算法优化
int aa[M][N] = { {1,3,5,7,9}, {2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0} }; int i, j,sum=0; for ( i = 0; i < M; i++) { for ( j= 0; j < N; j++) { if (i==0||i==M-1)//第一行和最后一行 { sum += aa[i][j]; printf("%d ", aa[i][j.原创 2021-07-05 16:40:08 · 618 阅读 · 0 评论 -
数字金字塔,你上也行
先打出一半 int i, j, numb1, numb2, n = 9; for (i = 1; i < n; i++) { for (j = 0; j < n - i - 1; j++) { printf(" "); } for (numb1 = 1; numb1 <= i; numb1++) { printf("%d", numb1); } printf("\n"); }另一半的规律就是遍历上一半的最后一个数字,但是由于nu原创 2021-07-04 16:53:40 · 215 阅读 · 0 评论 -
统计任意数字,有可以组成多少个不相同的数
int a1, a2, a3,sum=0;for ( a1= 1; a1 <=4; a1++){ for (a2 = 1; a2 <= 4; a2++) { for (a3 = 1; a3 <= 4; a3++) { if ((a1^a2)!=0&&(a1 ^ a3)!=0&&(a2 ^ a3)!=0)//简写形式就是三种数字不能重复 { sum = a1 * 100 + a2 * 10 + a3; printf.原创 2021-07-04 16:44:26 · 241 阅读 · 0 评论 -
教你规律的打出空心菱形
int i, j, m, n; scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j < n-1-i ; j++)//规律空格个数是数字的-1,接一个* { printf(" "); } for (m = 0; m < 2 * i +1; m++)//0行也i=0时也打印* { ///找出规律 // 0/* 0 * 每i=0时最后一个元素为2*i(从零开始的) //原创 2021-07-04 16:31:54 · 282 阅读 · 0 评论 -
排序三大算法
这里写目录标题1冒泡排序2选择排序3插入排序1冒泡排序冒泡比较常见不详解void BubbleSort(int a[], int len){ int i, j, temp; for (j = 0; j < len - 1; j++) { for (i = 0; i < len - 1 - j; i++) if (a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = tem原创 2021-07-04 16:25:27 · 107 阅读 · 0 评论 -
字符间插入空格
简单的数学应用char funs(char* s){ int i = 0; for ( i = strlen(s); i >0 ; i--)//空格的数量加上'\0'的数量正好是'原字符串的两倍'; { s[2 * i] = s[i];//第一个每一个数据的下标为原下标的两倍//还有一个因为中间存放需‘\0’ s[2 * i - 1] = ' '; } //即原下标 (0)1 (1)2 (2)3 (3)4=(0)1 (1)" " (2)2 (3)"" (4)3 //原创 2021-07-04 16:16:43 · 388 阅读 · 0 评论 -
十进制转二进制递归版
代码如下if (n / 2)//余数大于零,还可以继续除, to_b(n / 2);//继续递归 printf("%d", n % 2);//当不为零时则进行模2进行输出当然也可以写成这样void to_b(unsigned long n) { unsigned long r; r = n % 2; if (n >= 2) to_b(n / 2);putchar(r ? '1' : '0'); return; }道理一样输出的时字符串...原创 2021-07-04 16:02:21 · 415 阅读 · 0 评论 -
统计单词个数
核心思想当if进去之后就不会进入else由于单词为空格则为下一个有可能即为单词,如果下一个仍为空格则在进入if语句,将标志重新置为1只有当下一个不为1空格这时候再去检测标志是否为1如果为1则为一个单词int strings(char* s){ int i=0, j=0, flago = 1; while (s[i]) { if (s[i]==' ') { flago = 1; } else if(flago) { j++; flago = 0;原创 2021-07-04 15:39:44 · 158 阅读 · 0 评论 -
排序单词算法
这里写目录标题算法一暴力法算法二,二维数组算法一暴力法void sort(char* s[], int n) { char* tmp = 0; int i=0,j=0; for ( i = 0; i < n-1; i++) { for (j = 0; j < n-i-1 ; j++) { if (strcmp(s[j],s[j+1])>0)//核心进行比较开头字符的大小进行冒泡排序 { tmp = s[j]; s原创 2021-07-04 15:32:00 · 275 阅读 · 0 评论 -
小球反弹问题,代码实现
#简单的数学题 //小球反弹问题 double m = 100, m2 = 0, sum = m; int n = 9;//第一段已经计算只需下落的高度即可 while (n--) { m = m / 2; sum += m * 2;//两段路程弹起的高度与下落的高度一样所经过的路程即为弹起高度的两倍// } printf("%f", sum); ...原创 2021-07-04 15:21:31 · 529 阅读 · 0 评论 -
编写函数,函数功能:删去一维数组中所有重复的数,只保留不同的数。
文章目录要求:代码详解要求:编写函数,函数功能:删去一维数组中所有重复的数,只保留不同的数。 输出主函数原来 元素和删除后的元素。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如:一维数组中的数据是 : 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是 : 2 3 4 5 6 7 8 9 10 * /*/代码详解int i, j, n = 20, k = 0; int arr[20] = { 2 ,2, 2原创 2021-07-04 15:07:38 · 5621 阅读 · 4 评论 -
C语言实现文件版(二进制文件版)通讯录
通讯录功能添加,删除,查找,修改, 全部,储存文章目录通讯录功能文件结构一、主函数文件(入口)二、函数声明文件三,函数的实现功能测试添加删除功能查询功能修改功能存储功能文件结构头文件,函数文件,函数头文件。目录结构提示:以下是本篇文章正文内容,下面案例可供参考一、主函数文件(入口)代码如下#include "Contact.h"void menu() { printf("1.Add 2.Del\n"); printf("3.Search 4.Modeify原创 2020-09-02 16:29:41 · 1450 阅读 · 0 评论 -
C语言实现定义一个宏计算偏移量和解析
struct S{ char a; int b; char c;};#define OFFSET(str_name,stat_name) (int)&((( str_name *)0)->stat_name)int main() { printf("偏移量为=>%d\n", OFFSET(struct S, a)); printf("偏移量为=>%d\n", OFFSET(struct S, b)); printf("偏移量为=>%d\n",原创 2020-08-27 14:06:39 · 580 阅读 · 0 评论 -
C语言 预处理详情笔记(剖析)分享
C语言的预处理预处理分为两环境1.第1种是翻译环境, 在这个环境中源代码被转换为可执行的机器指令。2.第2种是执行环境, 它用于实际执行代码文章目录C语言的预处理编译过程图例编译流程预编译(预处理)阶段编译阶段汇编阶段形成可执行文件预定义符号(c语言内置)使用预处理指令define和宏定义宏宏的注意事项宏和函数宏的传参和移除#和##的作用预处理指令条件编译1条件编译2条件编译3(多分支的条件编译)条件编译4和ifedef原理相同条件编译5(嵌套编译)解决头文件重复包含完编译过程图例链接原创 2020-08-27 12:56:54 · 170 阅读 · 0 评论 -
C 语言文件操作笔记分享
文件磁盘上的文件是文件。但是在程序设计中, 我们一般谈的文件有两种:程序文件、数据文件文章目录文件一、文件种类程序文件数据文件文件类型文件缓冲区图解文件指针文件使用方式图解文件顺序读写图解二. 函数使用写 fputc(函数)读fgetc(函数)fgets函数(一次读取一行)fputs函数(写)fprintf(格式化输出函数)数据类型转换成字符串sprintf函数二进制写文件二进制写文件fwrite函数二进制读文件三. 文件的随机读取fseek函数(定位文件指针)文件结束判定ferror()函数检测流原创 2020-08-26 23:10:27 · 181 阅读 · 0 评论 -
C 语言动态内存管理malloc 函数calloc函数realloc函数,free函数
C语言提供的动态内存开辟的函数文章目录C语言提供的动态内存开辟的函数前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(原创 2020-08-26 14:16:06 · 253 阅读 · 0 评论 -
C语言 结构体学习笔记加解剖
C语言中的结构体用户自定义的可用的数据类型,它允许您存储不同类型的数据项。文章目录C语言中的结构体一、结构体类型声明一个结构体类型结构体的使用和初始化结构体的重命名(typedef)二.结构体指针创建结构体指针结构体的传参压栈图结构体指针类型匿名结构体类型三.结构体的自引用结构体的嵌套结构体嵌套的初始化四. 结构体的内存对齐例题解析图结构体嵌套修改默认对齐数为什么需要结构体对齐图解总结一、结构体类型结构体类型charshort.......内置类型 - (C语言自己的数据类型)复杂原创 2020-08-26 12:08:22 · 293 阅读 · 0 评论 -
C语言实现编程判断电脑是大段存储还是小端存储模式(两种方法)详解
何为大小端存储大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。文章目录何为大小端存储一、存放取位法原理:上代码二、使用联合体的特性联合--联合共用体总结一、存放取位法原理:原创 2020-08-25 23:13:35 · 1264 阅读 · 0 评论 -
C语言模拟实现memcpy函数和memove函数
这两个函数是整形数组里的库函数文章目录这两个函数是整形数组里的库函数一、memcpy--类型不限函数简介函数实现二、memove函数函数简介总结一、memcpy–类型不限函数简介数memcy从source的位置开始向后复制num个字 节的数据到destination的内存位置。●这个函数在遇到’\0’的时候并不会停下来。●如果source和destination有 任何的重叠, 复制的结果都是未定义的。memcpy(arr1, arr2);//函数名(目的地,源头,num)num要拷贝多少原创 2020-08-25 22:40:30 · 392 阅读 · 0 评论 -
C 语言模拟实现库函数strcopy,strca,strcmp,strstr
目录结构一、strcopy函数模拟实现二、strcat函数模拟实现三.strcmp函数模拟实现一、strcopy函数●源字符串必须以’\0’结束。●会将源字符串中的’\O’拷贝到目标空间。●目标空间必须足够大, 以确保能存放源字符串。●目标空间必须可变。strcpy(arr1, arr2);//函数名(目的地,源头)模拟实现 char * my_strcpy(char* dest, const char* src){ char* ret = dest; while原创 2020-08-25 18:44:37 · 475 阅读 · 0 评论 -
C 语言实现模拟strlen求字符串长度函数3种方法(详解)
库函数strlen这个函数是求字符串长度的字符串以’\0’作为结束标志, strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)。参数指向的字符串必须要以’\0’结束。注意函数的返回值为size._t, 是无符号的(易错)文章目录库函数strlen一、最简单方式(计数器)原理:二、递归方式原理:三,指针减指针原理:结果一、最简单方式(计数器)int my_strlen(const char* str){int count = 0;while (*str !原创 2020-08-25 18:10:18 · 1533 阅读 · 1 评论 -
C语言旋转字符(详解)(算法)
在一个数组中旋转字符 abcdef=>>>输出旋转之后的字符我要旋转2个字符cdefab文章目录在一个数组中旋转字符一、暴力求解法原理二、算法二,三步翻转三步反转法是什么结果(翻转3个字符)一、暴力求解法void left_move(char* arr, int k){ /*assert(arr != NULL);*/ int i = 0; int len = strlen(arr); for (i = 0;i < k;i++){ //左旋转一个字符原创 2020-08-25 16:18:12 · 995 阅读 · 0 评论 -
C语言实现,简单实现数学,猜凶手和,游泳比赛编程判断
文章目录猜凶手原理实现方法(假设法)结果游泳比赛实现方法(穷举法)原理结果猜凶手猜凶手题目内容:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。//0(假)B说:是C。//0C说:是D。//0D说: c在胡说//1已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写-个程序来确定到底谁是凶手原理这里假设a是凶手如果a是凶手3假1,真不满足条件,不满足就换个人假设直到3个人说了真话,1个人说的是假话。成立实现原创 2020-08-25 14:55:29 · 407 阅读 · 0 评论 -
C 语言实现杨氏矩阵找数字(详解)
杨氏矩阵一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录杨氏矩阵实现杨氏矩阵找数字原理(实现方法)代码实现结果实现杨氏矩阵找数字原理(实现方法)123456789找对角线的位置比如这个3这个位置比较特殊和7,先拿3说,3这个位置仔细观察3是所在这个一行里最大的,而在一列里是最小的7是一行里最小的,是一列中最大的有了这些条件就好原创 2020-08-25 14:24:48 · 279 阅读 · 0 评论 -
C 语言 实现打印杨辉三角(详解)
何为杨辉三角每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大。文章目录何为杨辉三角先打印一个完整的正方形一、pandas是什么?二、使用步骤1.引入库2.读入数据总结先打印一个完整的正方形。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdim原创 2020-08-25 13:50:41 · 3230 阅读 · 1 评论 -
C 语言 喝汽水1瓶汽水1元,2个空瓶可以换一 瓶汽水20元喝多少瓶详解
文章目录一、算法一二、算法二结果一、算法一//买回来的汽水喝掉 total = money; empty = money; //换回来的汽水 while (empty >= 2) { total += empty / 2;//拿空瓶换的汽水 empty = empty / 2 + empty % 2;//清算手里的空瓶 } printf("total = %d\n", total); return 0;二、算法二if (money == 0)total原创 2020-08-24 21:49:24 · 355 阅读 · 0 评论 -
C语言 打印一个菱形
如何打印你得先明白如何打印金字塔,即可,上半部分,空格减少,*增加,下半部分空格增加,*减少,文章目录如何打印前言一、上代码效果前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、上代码int line = 0; scanf("%d", &line);//7 //打印上半部分 int i = 0; for (i = 0;i < line;i++)原创 2020-08-24 21:33:56 · 290 阅读 · 0 评论 -
C语言,实现计算水仙花数,四叶玫瑰数,五角星数 等。。详解(算法)
水仙花数规则水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)文章目录水仙花数规则前言一、先上代码原理:总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、先上代码int i = 0; for (i = 100; i <= 100000; i+原创 2020-08-24 20:58:53 · 4459 阅读 · 0 评论 -
C 语言实现模仿库函数qsort函数
库函数qsortbase – 指向要排序的数组的第一个元素的指针。nitems – 由 base 指向的数组中元素的个数。size – 数组中每个元素的大小,以字节为单位。compar – 用来比较两个元素的函数。给一个比较规则就可以排序东西的库函数实现文章目录库函数qsort前言一、实现原理:二、尝试排序结构数据三.开始调用结果前言当然前提是离不开最主要的冒泡排序的规则void Swap(char* buf1, char* buf2, int width){ int i = 0;原创 2020-08-24 17:44:44 · 185 阅读 · 0 评论 -
c语言 计算存储中补码1的个数详解(算法)
计算机的存储模式整形数字存放的方式都是以二进制补码存储打印的是原码,转换规则,原码-取反->得反码,反码-1得补码当然正数的原反补相同那么如何计算一个数的二进制的补码有几个1呢文章目录计算机的存储模式一、剥落法二、按位与法原理:总结一、剥落法emmm什么加剥落法。举一个例子123这个数字你要拿到分别拿到1,2,3怎么办那就一层一层剥落下来123%10得3123/10去掉3得1212%10=212/10=1这样就拿到了,那如果是二进制的话一样可以,二进制/2,%2即原创 2020-08-24 14:49:12 · 764 阅读 · 0 评论 -
C 语言实现两数交换的4种方法详解(算法)
两数交换一般都是创建临时一个存储空间,tmp = a;a = b;b = tmp;tmp就是临时变量实现交换值文章目录两数交换实现两数交换的方法一、临时变量存放法二、地址法三. 加减法四.异或法总结实现两数交换的方法这里举4个例。提示:以下是本篇文章正文内容,下面案例可供参考一、临时变量存放法代码如下swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; printf("a=%d,b=%d", a, b原创 2020-08-24 14:12:39 · 4540 阅读 · 0 评论 -
C 语言实现简单扫雷游戏
将游戏实现分文件。防止文件臃肿,使其目录结构清晰头文件(game.h),主函数文件(主入口),和函数实现文件(game.c)文章目录将游戏实现分文件。防止文件臃肿,使其目录结构清晰一、主函数文件(主入口)二、头文件(game.h)1.引入库三,头文件函数实现文件(game.c)一、主函数文件(主入口)#include "game.h"void menu() { printf("1 play, 0 exit\n\n\n");}void game() { /*printf("扫雷\n"原创 2020-08-24 12:18:12 · 211 阅读 · 0 评论 -
C语言实现井子棋(多子棋)游戏
将游戏实现分文件。头文件(game.h),主函数文件(主入口),和函数实现文件(game.c)文章目录将游戏实现分文件。前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言当然电脑是随机的没有相应算法实现电脑计算下棋判断下哪里赢,所以这里电脑是随机下的提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):impor原创 2020-08-24 11:24:51 · 551 阅读 · 0 评论 -
C 语言实现斐波那契数列,解决递归实现缺陷(算法)
何为斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,其斐波那契数列数列从bai第3项开始,每一du项都等于前两项之和。文章目录何为斐波那契数列概况一、递归实现函数原理 :二、交换位置方法原理:总结概况既然明确斐波那契数列确定基本算法如果你要求第n个斐波那契数列**n=n-1+n-2**提示:以下是本篇文章正文内容,下面案例可供参考一原创 2020-08-23 22:00:53 · 376 阅读 · 0 评论