搜索内容

包含标签:c语言 的文章
  • 循环队列的操作
    其他

    循环队列的操作

               
    admin 今天
  • 组个最小数 C直观解法
    其他

    组个最小数 C直观解法

    给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。 现给定数字,请编写程序输出能够组成的最小的数。 输入格式: 输入在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。 输出格式: 在一行中输出能够组成的最小的数。 输入样例: 2 2 0 0 0 3 0 0 1 0 结尾无空行 输出样例: 10015558 代码: #include int main(void){ int a[10]; int n; for(int i=0;i<10;i++){ scanf("%d",&n); a[i]=n; } //找首位 for(int i=1;i<10;i++){ if(a[i]!=0) { printf("%d",i)
    admin 今天
  • 数据结构学习方法
    其他

    数据结构学习方法

     
    admin 今天
  • FreeRtos消息队列实现
    其他

    FreeRtos消息队列实现

    #define CXPI_QUEUE_TASK_STK_SIZE 256 #define MSG_QUEUE_MAXSIZE 50 #define BUFF_HEAD 0 #define BUFF_LEN 15 static uint8 TxQueue_a[MSG_QUEUE_MAXSIZE][BUFF_LEN]; static uint8 TxQueueFront; static uint8 TxQueueRear; static uint8 RxQueue_a[MSG_QUEUE_MAXSIZE][BUFF_LEN]; static uint8 RxQueueFront; static uint8 RxQueueRear; static uint32 SEM_ID_TXQUE = 0; static uint32 SEM_ID_RXQUE = 0; int8 IsRxQueueEmpty
    admin 今天
  • 攻防世界 cgpwn2 writeup
    其他

    攻防世界 cgpwn2 writeup

    首先进行elf可知是32位程序,栈保护未打开:  IDA反编译,三个关键函数:  函数分析:main中没啥东西,hello()函数中有两次输入,第二次gets函数没有限制可以进行栈溢出,pwn函数中含system。 攻击思路:hello()将name赋值 /bin/sh 字符串,在第二次输入中将它作为system的参数值进行payload writeup:      
    admin 今天
  • 顺序栈的初始化,入栈,出栈,求栈长度,遍历操作(C语言)
    其他

    顺序栈的初始化,入栈,出栈,求栈长度,遍历操作(C语言)

    #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2 int i, n, e, j, x, num; //顺序栈 #define MAXSIZE 100 typedef struct { int* top;//栈顶指针 int* base;//栈底指针 int stacksize;//栈可用的最大容量 }SqStack; //1.顺序栈的初始化 int InitSqStack_S(SqStack& S) { S.base = (int*)malloc(sizeof(int) * MAXSIZE); if (!S.base) exit(OVERFLOW);//存储分配失败 S.top = S.base;//栈顶指针等于栈底指针,表示空栈 S.stacksize = MAXSIZE; return OK; } //2.顺序栈的入栈 int SqStackPush_S(SqStack &S, int e) {//将元素
    admin 今天
  • IDEA 执行jni加载dll文件报错Process finished with exit code -1073741819 (0xC0000005)
    其他

    IDEA 执行jni加载dll文件报错Process finished with exit code -1073741819 (0xC0000005)

    如果您使用 Cygwin 的 GCC,目标可能是本机 Windows 或 Cygwin。如果目标是本机Windows,则可以在Windows 下分发和运行代码。如果目标是 Cygwin,则需要分发 Cygwin 运行时环境 ( cygwin1.dll)。这是因为 Cygwin 是 Windows 下的 Unix 模拟器。 所以如果你使用Cygwin编译处理的文件,在执行命令时会出现内存报错: 对于 64 位 JDK,您需要找到生成 64 位本机 Windows 目标的编译器。这是由 MinGW-W64 提供的。您可以在 Cygwin 下安装 MinGW-W64,也可以直接下载MinGW-W64; 通过选择包“ mingw64-x86_64-gcc-core”(C 编译器)和“ mingw64-x86_64-gcc-g++”(C++ 编译器)。可执行文件分别是"x86_64-w64-mingw32-gcc“(
    admin 今天
  • (C语言)实现井字棋
    其他

    (C语言)实现井字棋

    利用代码实验井字棋,考验对函数传参的应用以及字符型数组的基本使用方法。因为在此之前,都是整型数组用的多,字符型数组的一些输入输出赋值之类的操作运用并不是很熟练,导致代码最开始出现了非常多bug。比如,有一部分map[][]数组被定义为char类型,有一部分被定义为int类型,还有就是赋值的时候本该用单引号,但是错误使用双引号。原来空格也是一个字符,并且char[][]一次只能对一个字符赋值等等等。 以下是代码: #define _CRT_SECURE_NO_WARNINGS 1 #include #include #include #include //字符要用单引号,字符串才是双引号 void menu() { printf("***************\n"); printf("******井字棋******\n"); printf("***************\n"); printf("1.play 0.exit\n"); } vo
    admin 今天
  • 太难了,让程序员崩溃的 8 个瞬间
    其他

    太难了,让程序员崩溃的 8 个瞬间

    大家好,我是业余码农。程序员真是一个看起来挺牛逼,实际上很悲催的职业。 虽然说用代码创造世界是一件很爽的事情,但很多时候可能某个瞬间就会被整破防,情绪一激动一上头来那可是啥是都干得出来! 最近做需求比较烦躁,时常让我感觉到崩溃。有时候不仅app crash了,人也崩溃了。于是乎总结了一下让程序员 crash 的 8 个瞬间。 一、当产品变更需求时 作为开发的死对头,产品经理的存在一定是为了不让程序员好过才被设立出来的吧。 就像是为了防止物种入侵一样,产品的存在就是制约程序员过度繁殖,从而导致生态毁灭。 而产品的有效武器大概就是通过不断的修改需求,来达到控制程序员数量的目的。 当产品经理在需求群里at某个程序员的时候,大概率准是没好事的。所以在产品经理开始at你,让你修改需求时,大概是想打人的心都有了吧。 然而最可怕的是,当你辛辛苦苦百度谷歌了几天,用了一系列非常极客的技术来实现了某个功能。
    admin 今天
  • QQ、微博、陌陌:社交难逃社交命
    其他

    QQ、微博、陌陌:社交难逃社交命

    配图来自canva可画 1994年,大陆第一个互联网BBS——曙光站上线。之后,水木清华、猫扑、西祠胡同等BBS网站接连出现,国内社交媒体正式进入成长期。 1999年,被腾讯人称为“饿死鬼小精灵”的OICQ诞生。腾讯QQ在即时通讯领域一骑绝尘,成为社交王者。 2002年Blog传入中国,以此为原型的博客中国成立。随着“木子美”事件的助推,各大网站都在进军博客,新浪、网易等门户网站相继开火,门户博客全面爆发。 2005年,校内网上线;2008年,开心网上线,5Q网、底片网等SNS网站陆续推出,SNS网站呈现出强劲生命力。 2007年,被誉为“中国最早的微博”的饭否网上线,但饭否网两年后被关停。2009年,新浪微博悄然上线,正式进入微博时代。 2011年,微信上线。此后,微信势如破竹,一步步攻入其他玩家的腹地,一举成为社交霸主。同年,陌陌踏入陌生人社交赛道,引起巨大反响。 此后,小红书、抖音等互联网产品接连问世,也都不约而同地踏入社交领域。社交赛道硝烟滚滚,不断有新的社交产品进入市场,试图讲出新故事。时至今日,虽然QQ、微博、陌陌
    admin 今天
  • QQ、微博、陌陌:社交难逃社交命
    其他

    QQ、微博、陌陌:社交难逃社交命

    配图来自canva可画 1994年,大陆第一个互联网BBS——曙光站上线。之后,水木清华、猫扑、西祠胡同等BBS网站接连出现,国内社交媒体正式进入成长期。 1999年,被腾讯人称为“饿死鬼小精灵”的OICQ诞生。腾讯QQ在即时通讯领域一骑绝尘,成为社交王者。 2002年Blog传入中国,以此为原型的博客中国成立。随着“木子美”事件的助推,各大网站都在进军博客,新浪、网易等门户网站相继开火,门户博客全面爆发。 2005年,校内网上线;2008年,开心网上线,5Q网、底片网等SNS网站陆续推出,SNS网站呈现出强劲生命力。 2007年,被誉为“中国最早的微博”的饭否网上线,但饭否网两年后被关停。2009年,新浪微博悄然上线,正式进入微博时代。 2011年,微信上线。此后,微信势如破竹,一步步攻入其他玩家的腹地,一举成为社交霸主。同年,陌陌踏入陌生人社交赛道,引起巨大反响。 此后,小红书、抖音等互联网产品接连问世,也都不约而同地踏入社交领域。社交赛道硝烟滚滚,不断有新的社交产品进入市场,试图讲出新故事。时至今日,虽然QQ、微博、陌陌
    admin 今天
  • C~指针知识
    其他

    C~指针知识

    文章目录 一、指针是什么?二、指针和指针类型2.1 指针+- 整数2.2 指针的解引用 三、野指针3.1 野指针原因3.2 如何规避野指针 四、指针运算4.1 指针 +- 整数4.2 指针 - 指针4.3 指针的关系运算 五、指针和数组六、二级指针 一、指针是什么? 指针理解的两个要点: 指针是内存中一个最小单元(字节)的编号,也就是地址平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量 内存 指针变量 可以通过&(取地址操作符)取出变量的起始内存地址,把地址可以存放在一个变量中,这个变量就是指针变量 #include int main() { int a = 10; //在内存开辟一个整型空间(4个字节),将10初始化给这个空间 int* p = &a;//对变量a使用&取出它的地址,a变量占用4个字节空间, /
    admin 今天
  • ubuntu-安装系统&安装、卸载与切换内核
    其他

    ubuntu-安装系统&安装、卸载与切换内核

    1 系统安装 ubuntu官网提供的所有版本的ubuntu:ubuntu releases https://releases.ubuntu.com/?_ga=2.266111436.2106034982.1638435455-1310506229.1638435455 2 内核源码 网站:https://cdn.kernel.org/pub/linux/kernel 2.1 查看可以安装的内核并进行安装 # 查看可以安装的哪些内核版本 apt-cache search linux | grep linux-image 安装命令:sudo apt-get install linux-image-4.4.0-75-generic linux-headers-4.4.0-75-generic linux-image-extra-4.4.0-75-generic 安装完后,需要把默认内核改成4.4,用下面
    admin 今天
  • 非常简单的斗地主
    其他

    非常简单的斗地主

    简单的斗地主 复习一下C语言 实现的点: 1 生成不重复的牌 2 分牌 3 打牌(当前是一张一张出) #include #include #include char A[20] = "牛魔王"; char B[20] = "白晶晶"; char C[20] = "至尊宝"; int owner = 0; //地主是谁 enum cards{ meihua = 1, hongtao, fangkuai, heitao, smallKing, bigKing, }; typedef struct card{ int shape; int number; }cardPoker; cardPoker Bit[55]; cardPoker playerA[21]; cardPoker pla
    admin 今天
  • 数据的一个整体移动
    其他

    数据的一个整体移动

    先说说我对这题的感受,最开始我觉得这个题目很难,但是后面才知道,这个题目没有我想想的那么复杂,所以还是得多写多看,记录一下自己的这个学习的情况和记录  起初我一直在想怎么去弄这个循环,后来发现,单纯的只用打印出来就行了,分为两段打印就欧克了,算是比较简单的 #include int main(){     int m,n;     scanf("%d%d",&n,&m);     m=(m
    admin 今天
  • 复合型数据结构:(双向循环)链表_第2部分
    其他

    复合型数据结构:(双向循环)链表_第2部分

    本部分实现双向循环链表的: 统计链表中结点个数删除某个结点 (根据结构体中某个成员的值、根据处于链表中的位置) (有头节点、无头结点的处理区别)链表的销毁及野指针处理 双向循环链表_第2部分 1 统计链表中的结点个数1.1 带头结点1.2 不带头结点 2 查找链表中的数据2.1 查找带头结点的链表2.2 查找不带头节点的链表 3 根据位置删除某个节点3.1 带头结点3.1.1 正数第k个位置3.1.2 倒数第k个位置3.1.3 合二为一:过程的抽象 3.2 不带头结点3.2.1 正数第k个位置3.2.2 倒数第k个位置3.2.3 能合二为一吗? 4 销毁链表野指针问题 1 统计链表中的结点个数 1.1 带头结点 int CountingNodesOfListWithHead(node *list){ if(list == NULL){ // Defensi
    admin 今天
  • C语言实现字符串分割
    其他

    C语言实现字符串分割

    #include #include #include //字符分割 void split(char *src, const char *separator, char **dest, int *num) { /* src 源字符串的首地址(buf的地址) separator 指定的分割字符 dest 接收子字符串的数组 num 分割后子字符串的个数 */ char *pNext; int count = 0; if (src == NULL || strlen(src) == 0) //如果传入的地址为空或长度为0,直接终止 return; if (separator == NULL || strlen(separator) == 0) //如未指定分割的字符串,直接终止 return; pNext = (ch
    admin 今天
  • QQ、微博、陌陌:社交难逃社交命
    其他

    QQ、微博、陌陌:社交难逃社交命

    配图来自canva可画 1994年,大陆第一个互联网BBS——曙光站上线。之后,水木清华、猫扑、西祠胡同等BBS网站接连出现,国内社交媒体正式进入成长期。 1999年,被腾讯人称为“饿死鬼小精灵”的OICQ诞生。腾讯QQ在即时通讯领域一骑绝尘,成为社交王者。 2002年Blog传入中国,以此为原型的博客中国成立。随着“木子美”事件的助推,各大网站都在进军博客,新浪、网易等门户网站相继开火,门户博客全面爆发。 2005年,校内网上线;2008年,开心网上线,5Q网、底片网等SNS网站陆续推出,SNS网站呈现出强劲生命力。 2007年,被誉为“中国最早的微博”的饭否网上线,但饭否网两年后被关停。2009年,新浪微博悄然上线,正式进入微博时代。 2011年,微信上线。此后,微信势如破竹,一步步攻入其他玩家的腹地,一举成为社交霸主。同年,陌陌踏入陌生人社交赛道,引起巨大反响。 此后,小红书、抖音等互联网产品接连问世,也都不约而同地踏入社交领域。社交赛道硝烟滚滚,不断有新的社交产品进入市场,试图讲出新故事。时至今日,虽然QQ、微博、陌陌
    admin 今天
  • LVGL LV_DPI_DEF 配置
    其他

    LVGL LV_DPI_DEF 配置

    一、参考 可以参考此地址:http://www.4k8k.xyz/article/qq_26106317/120610353 二、具体配置 #define LV_DISP_DEF_REFR_PERIOD 30 /*[ms] 刷新周期*/ #define LV_INDEV_DEF_READ_PERIOD 300 /*[ms] 输入设备读取周期*/ /*Use a custom tick source that tells the elapsed time in milliseconds. *It removes the need to manually update the tick with `lv_tick_inc()`)*/ /* 时钟源提供器,如果LV_TICK_CUSTOM==1,那么你就不用lv_tick_inc()提供时钟了 */ #define LV_T
    admin 今天
  • QQ、微博、陌陌:社交难逃社交命
    其他

    QQ、微博、陌陌:社交难逃社交命

    配图来自canva可画 1994年,大陆第一个互联网BBS——曙光站上线。之后,水木清华、猫扑、西祠胡同等BBS网站接连出现,国内社交媒体正式进入成长期。 1999年,被腾讯人称为“饿死鬼小精灵”的OICQ诞生。腾讯QQ在即时通讯领域一骑绝尘,成为社交王者。 2002年Blog传入中国,以此为原型的博客中国成立。随着“木子美”事件的助推,各大网站都在进军博客,新浪、网易等门户网站相继开火,门户博客全面爆发。 2005年,校内网上线;2008年,开心网上线,5Q网、底片网等SNS网站陆续推出,SNS网站呈现出强劲生命力。 2007年,被誉为“中国最早的微博”的饭否网上线,但饭否网两年后被关停。2009年,新浪微博悄然上线,正式进入微博时代。 2011年,微信上线。此后,微信势如破竹,一步步攻入其他玩家的腹地,一举成为社交霸主。同年,陌陌踏入陌生人社交赛道,引起巨大反响。 此后,小红书、抖音等互联网产品接连问世,也都不约而同地踏入社交领域。社交赛道硝烟滚滚,不断有新的社交产品进入市场,试图讲出新故事。时至今日,虽然QQ、微博、陌陌
    admin 今天
  • Android ko文件拷贝
    其他

    Android ko文件拷贝

    device/.../device.mk下: PRODUCT_COPY_FILES += \         kernel/drivers/input/touchscreen/gt9xx/gt.ko:$(TARGET_COPY_OUT_VENDOR)/lib/gt.ko
    admin 今天
  • c 语言 求数组中偶数的和
    其他

    c 语言 求数组中偶数的和

    有两种方法: 一是判别偶数: #include int main() { int numbers[] = {10, 13, 6, 7, 4};; int sum = 0; int index; for (index = 0; index < 5; index++) { if (numbers[index]%2 == 0){ sum += numbers[index]; } } printf("The sum is %d\n", sum); return 0; } 二是判别奇数: #include int main() { int numbers[] = {10, 13, 6, 7, 4}; int
    admin 今天
  • QQ、微博、陌陌:社交难逃社交命
    其他

    QQ、微博、陌陌:社交难逃社交命

    配图来自canva可画 1994年,大陆第一个互联网BBS——曙光站上线。之后,水木清华、猫扑、西祠胡同等BBS网站接连出现,国内社交媒体正式进入成长期。 1999年,被腾讯人称为“饿死鬼小精灵”的OICQ诞生。腾讯QQ在即时通讯领域一骑绝尘,成为社交王者。 2002年Blog传入中国,以此为原型的博客中国成立。随着“木子美”事件的助推,各大网站都在进军博客,新浪、网易等门户网站相继开火,门户博客全面爆发。 2005年,校内网上线;2008年,开心网上线,5Q网、底片网等SNS网站陆续推出,SNS网站呈现出强劲生命力。 2007年,被誉为“中国最早的微博”的饭否网上线,但饭否网两年后被关停。2009年,新浪微博悄然上线,正式进入微博时代。 2011年,微信上线。此后,微信势如破竹,一步步攻入其他玩家的腹地,一举成为社交霸主。同年,陌陌踏入陌生人社交赛道,引起巨大反响。 此后,小红书、抖音等互联网产品接连问世,也都不约而同地踏入社交领域。社交赛道硝烟滚滚,不断有新的社交产品进入市场,试图讲出新故事。时至今日,虽然QQ、微博、陌陌
    admin 今天
  • Linux 库文件生成与使用
    其他

    Linux 库文件生成与使用

    1、什么是库文件         库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。 在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。         库有两种,一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so, 如下图所示: 2、静态库的生成与使用 2.1 静态库的生成         以下是需要生成静态库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“max.c”          第一步:先将需要生成库文件的所有“.c“文件编译成“.o”文件          第二步:使用 ar 命令将第一步编译的所有”.o”文件生成静态库,其中:                 ◼ c 是创建库                 ◼ r 是将方法添加到库中                 ◼ v 显示过程  2.2 静态库的
    admin 今天
  • C++面向对象之虚函数
    其他

    C++面向对象之虚函数

    #include using namespace std; class Human{ public: virtual void buyTicket(){ cout<<"Human buy ticket"<< endl; } }; class Teacher: public Human{ public: virtual void buyTicket(){ cout<<"Teacher buy ticket"<< endl; } }; class Student: public Human{ public: virtual void buyTicket(){ cout<<"student buy ticket"<< endl; } }; int main() { Human *p; p = new Teache
    admin 今天
  • 动态内存的开辟于释放
    其他

    动态内存的开辟于释放

    //动态内存分配 #include #include #include #include int main() { //动态内存开辟 //向内存申请10个整形的空间 int* p = (int* )malloc(10*sizeof(int)); if(p == NULL) { printf("开辟失败\n"); //打印错误原因 printf("%s\n",strerror(errno)); } else { int i = 0; for(i=0;i<10;i++) { *(p+i) = i; } for(i=0;i<10;i++) { printf("%d ",*(p+i)); } } //当动态申请的空间不再使用时 //就应该还给操作系统 free(p); p = NULL; return 0; } calloc开辟动态内存空间 会初始化为0 int ma
    admin 今天
  • LeetCode 155. 最小栈
    其他

    LeetCode 155. 最小栈

    好久没刷题了,最近刷题见到这个一个题,题目本身很简单,做一个辅助栈,时间效率跑过100%的用户,但是在讨论区看到 一次面试的时候,面试官要求不开辅助栈的做法,感觉这个值得思考。做法是在栈内记录一个最小值,同时栈内存储于最小值的差值。但任然离不开栈的先进后出性质。 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/min-stack 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 /* * @lc app=leetcode.cn id=155 lang=cpp * * [155]
    admin 今天
  • 树莓派I2C控制DLPDLCR230NPEVM(python改写c)+注意事项
    其他

    树莓派I2C控制DLPDLCR230NPEVM(python改写c)+注意事项

    树莓派控制230EVM是通过I2C和Parallel RGB,这里主要介绍I2C。 由于官网的例程是python语言,想要改成C语言,重点在于I2C函数的写。 以下代码为读取adc电源的例程。(16位) #include #include #include #include #include #include #include #include #include #include int i2c_write_bytes(int fd, unsigned short slave_addr, unsigned short reg_addr, unsigned char *data, int len) { unsigned char *data_wr = NULL; int
    admin 今天
  • Linux–gcc的基本用法
    其他

    Linux–gcc的基本用法

    Linux--gcc的基本用法 1.四个过程2.一次性完成二、gcc常用选项三、多模块编译四、静态库与动态库1.静态库(.a)gcc编译步骤:(1)预处理(2)编译(3)汇编(4)链接 1.四个过程 预处理(pre-processing) E 编译器将C源代码中的包含的头文件如stdio.h编译进来,替换宏。 编译(Compiling)S gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。 汇编(Assembling) c 把编译阶段生成的”.s”文件转成二进制目标代码。 链接 (Linking) 链接到库中,生成可执行文件。 2.一次性完成 二、gcc常用选项 选项名作用E激活预处理;头文件、宏等展开(.i文件)S激活预处理、编译;生成汇编代码(.s文件)c激活预处理、编译、汇编;生成目标文件(
    admin 今天
  • 常用C/C++开源库
    其他

    常用C/C++开源库

    1. 框架 Apache C++ Standard Library : 是一系列算法,容器,迭代器和其他基本组件的集合ASL : Adobe源代码库提供了同行的评审和可移植的C++源代码库。Boost : 大量通用C++库的集合。BDE : 来自于彭博资讯实验室的开发环境。Cinder : 提供专业品质创造性编码的开源开发社区。Bxxomfort : 轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中。Dlib : 使用契约式编程EASTL : EA-STL公共部分ffead-cpp : 企业应用程序开发框架Folly : 由Facebook开发和使用的开源C++库。JUCE : 包罗万象的C++类库,用于开发跨平台软件libphenom : 用于构建高性能和高度可扩展性系统的事件框架。LibSourcey : 用于实时的视频流和高性能网络应用程序的C++11 evented IOLoki : C++库的设计,包括常见的设计模式和习语的实现。MiLi : 只含头文件的小型C++库openFrameworks : 开发C+
    admin 今天
  • 第五章34到37
    其他

    第五章34到37

    #include int  main() {     int i,j;     for (i = 1; i <= 5; i++)     {         for (j = 1; j <= 20 - i; j++)             printf("");         for (j = 1; j <= 2 * i - 1; j++)             printf("*");         printf("\n");     }     return 0; } #include #include int  main() {     int m,n,count=0;     m = rand() % (80 - 10 + 1) + 10;     printf("请输入一个10-80之间的整数");     while (1)     {         scanf_s("%d",&n);         count++;         if (m == n)  
    admin 今天
  • 1055 集体照(25分)
    其他

    1055 集体照(25分)

    拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每排人数为 N/K(向下取整),多出来的人全部站在最后一排; 后排所有人的个子都不比前排任何人矮; 每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整); 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175、170,则队形为175、188、190、186、170。这里假设你面对拍照者,所以你的左边是中间人的右边); 若多人身高相同,则按名字的字典序升序排列。这里保证无重名。 现给定一组拍照人,请编写程序输出他们的队形。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出两个正整数 N(≤104,总人数)和 K(≤10,总排数)。随后 N 行,每行给出一个人的名字(不包含空格、长度不超过 8 个英文字母)和身高([30, 300] 区间内的整数)。 输出格式: 输出拍照的队形。即K排人名,其间以空格分隔,行末不得有多余空格。注意:假设你面
    admin 今天
  • 单链表逆置:空间复杂度O(1)
    其他

    单链表逆置:空间复杂度O(1)

    带头结点单链表逆置 从链表(带头结点)首个数据结点开始,重新头插法建表,将节点链接到头结点上 //单链表结点结构 typedef struct LNode { int data; struct LNode* next; }LNode; void Inversion(LNode* head) { LNode* phead=head->next; LNode* q; head->next=NULL; //头结点next指针置空 while(phead!=NULL) { q=phead->next; //利用phead头插法重新建表 phead->next=head->next; head->next=phead; phead=q; } }
    admin 今天
  • printf不能打印浮点类型
    其他

    printf不能打印浮点类型

    用vscode和stm32cubemx搭建stm32开发环境后,然后重写_write函数以便用串口重定向printf的输出调试信息,如下, int _write(int file, char *ptr, int len) { HAL_UART_Transmit(&huart1, (uint8_t *)ptr, len, HAL_MAX_DELAY); return len; } 这样后,发现一般的都能打印,但是浮点数确打印不了。调用 while (1) { HAL_Delay(1000); printf("%f\n", f); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } 其中f是一个float类型的变量 float f = 1.2; 发现串口助手输出是这样: 经过查阅大量资料发现,原来cubemx生成的makefile中指定的是精简版的C库,所以有些特性是没有的,比如printf打印浮点类型 查看makefile的LDFLA
    admin 今天
  • " alt="第五章 循环结构程序设计总结">
    其他

    第五章 循环结构程序设计总结

    举个此章的代码例子: 假设今年我过的人口总数为13亿,若按每年2%增长,计算从现在开始10年内每年人口第数量:  文字描述:1、定义两个整数n,year和两个小数number,rate,且n=13,rate=0.02。 2、使用for循环语句,输入循环条件与公式。 3、判断循环条件来进行是否循环。 4、结束循环时则输出year与number循环结束后的值。 流程图: 编写代码,计算1-1/4+1/7-1/10+...的和,知到某一项的绝对值小于10^(-6)为止。  文字描述:1、定义四个小数类型的变量:sum,item,flag,denominator。 2、使用while 循环语句,输入循环条件与公式。 3、判断循环条件来进行是否循环。 4、结束循环时输出sum的值。 注意:while语句是3种循环语句之一,while后括号中的表达式称为循环条件,循环开始时,一定要保证循环条件为真。 流程图:                        使用for语句实现循环结构 1、for语句的基本用法 f
    admin 今天
  • 数据结构学习——链表的简易功能实现
    其他

    数据结构学习——链表的简易功能实现

    引入头文件 #include #include #include 结构体定义 typedef struct Node { int data; struct Node *pNext; }NODE,* PNODE; 创建链表 PNODE creat_list(void){ //不存放有效数字的头结点 PNODE pHead = (PNODE)malloc(sizeof(NODE)); if(pHead==NULL){ printf("分配失败"); exit(-1); } //创建尾节点 PNODE pTail = pHead; pTail->pNext = NULL; //动态创建 需要指定有效节点个数 int len; int val;//临时存放用户输入的值 printf("请输入该链
    admin 今天
  • 文本replace处理的几种实现方式
    其他

    文本replace处理的几种实现方式

    windows系统最简单的使用notepad++。 需要打开“显示所有字符”,选择所有字符(包括不可打印字符),然后进行替换操作。 命令行方式对文本的处理:Linux 命令,bash 脚本语言对文本的处理:Python C语言对文本的处理
    admin 今天
  • " alt="7-5 小明的糖果 (5 分)">
    其他

    7-5 小明的糖果 (5 分)

    小明很喜欢吃糖果。 有一天,他拿出了 n 个盒子,第一个盒子装了 1 颗糖果,第二个盒子装了 2 颗糖果,以此类推,第 n 个盒子装了 n 颗糖果。 然而,爱搞恶作剧的小红把所有的盒子的顺序打乱,并拿走了一个盒子。小明想知道,小红拿走的盒子里有多少颗糖果? 输入格式: 第一行输入一个正整数 n ,代表原来总盒子的数量。第二行输入 n-1 个正整数 ai,代表目前每个盒子里糖果的数量。(0<=n,ai<=10000)  输出格式: 输出一个正整数,代表小红拿走的盒子里糖果的数量。 输入样例: 在这里给出一组输入。例如: 5 2 5 1 3 输出样例: 在这里给出相应的输出。例如: 4  说明:开始共有5个盒子,每个盒子内分别有1、2、3、4、5颗糖果。小红拿走的是第四个盒子。      原题本来是要求要用数组的方法求解,我觉得太绕了,所以我采用了简单粗暴的解题方法。 #include int main() { int n, i, j, x, m, sum = 0, it
    admin 今天
  • {每日一道算法题21/12/2}
    其他

    {每日一道算法题21/12/2}

    506. 相对名次 难度 简单 给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。 运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况: 名次第 1 的运动员获金牌 "Gold Medal" 。 名次第 2 的运动员获银牌 "Silver Medal" 。 名次第 3 的运动员获铜牌 "Bronze Medal" 。 从名次第 4 到第 n 的运动员,只能获得他们的名次编号(即,名次第 x 的运动员获得编号 "x")。 使用长度为 n 的数组 answer 返回获奖,其中 answer[i] 是第 i 位运动员的获奖情况。 提示 n == score.length1 <= n <= 1040 <= score[i] <= 106score 中的所有值 互不相同 示例1: n == score.length1 <= n <= 1040
    admin 今天
  • n的分划数
    其他

    n的分划数

    int f(int i, int j) //p240.5 { if(i==1 || j==1) return 1; if(i
    admin 今天
  • STM32+STM32CubeMX 中断系统与外部中断基础
    其他

    STM32+STM32CubeMX 中断系统与外部中断基础

    文章目录 前言 一、STM32的中断系统 二、STM的外部中断 外部中断EXIT是STM32芯片实时处理外部事件的一种机制,由于中断请求来自GPIO端口的引脚,所以称为外部中断 三、外部中断的程序设计思路         传统STM32外部中断设计步骤:         基于STM32CubeMX的外部中断设计步骤:         中断初始化配置 四、例子  中断服务函数的编写 总结 三、外部中断程序设计思路 总结   前言 提示:这里可以添加本文要记录的大概内容: 例如:STM32CubeMX对于初学者更加的容易,配置过程相对寄存器和库函数较为简单,所以本文介绍一下STM32CubeMX中断的配置。 提示:以下是本篇文章正文内容,下面案例可供参考 一、STM32的中断系统 中断、中断源、中断向量、中断优先级、中断服务函数…… ARM Cortex M3内核支持256个中断,包括16个内核中断和240个外设中断,拥有256个中断优先级别。 STM32的中断
    admin 今天
  • 结构体struct的定义和使用
    其他

    结构体struct的定义和使用

    前言 本文详细介绍了关于struct的多种定义方式,以及不同定义方式在C和C++中的使用方法。 本文涉及到的代码示例可在我的github获取 地址:struct的使用 深度解析结构体 前言一、结构体的定义方式1、普通形式,只定义结构体2、定义结构体的同时也定义结构体变量3、定义结构体的时候缺失结构体名,同时定义结构体变量4、使用typedef, 定义结构体的同时为结构体取别名5、使用typedef,定义结构体缺失结构体名,只取别名 二、结构体的使用1、C和C++中定义结构体5种形式的头文件usestruct.h:2、C中使用结构体的源文件main.c:3、C++中使用结构体的源文件main.cpp: 一、结构体的定义方式 1、普通形式,只定义结构体 struct type_one_s{ int a; int b; }; 这种形式只定义
    admin 今天
  •   " alt="2021/12/02学习总结">
    其他

    2021/12/02学习总结

    8:30-9:30   看栈有关的知识点10:10-11:50    做程序设计基础实验(写的是函数有关的实验)12:40-13:40    继续做程序设计实验14:30-16:10     上计算机实验课——讲了如何使用PPT18:00-18:30     刷题19:00-20:40     做作业20:40-22:00      听学长讲课学长今天讲的是双指针和二分法首先用了两道例子 第一道是有关双指针的题目,题目如下:         这道题相信很多同学会使用暴力方法,但是这样往往时间就会超限,所以今天学长给我们教了优化版本。 仔细考虑暴力法就会发现,暴力法在解题时有很多地方是重复计算了 ( i 指针在 j 指针的后面,i是遍历的整个数组的,j 是遍历 0 到 i 的):  比如 j = 1,i = 5,此时发现 i,j 是满足题解条件的;那么后面的 j = 2到5,i = 5 就不用计算了,肯定是满足条件的。  所以引出了双指针法:还是上面的例子,双指针法就是说,既然发现 j = 1,i = 5满足题解条件,那就不用计算 j =
    admin 今天
  • C语言奇数魔方阵
    其他

    C语言奇数魔方阵

     奇数魔方阵的排列规律如下: (1) 将1放在第一行中间一列; (2) 从2开始直到 n×n 止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列); (3) 如果上一个数的行数为1,则下一个数的行数为 n (指最下一行);(例如1在第一行,则2应放在最下一行,列数同样加1); (4) 当上一个数的列数为 n 时,下一个数的列数应为1,行数减去1。(例如2在第3行最后一列,则3应放在第二行第一列); (5) 如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。(例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面); 3*3的魔方阵如下:  我们把上面的规律转化为程序语言: 程序分析: 第一步:在定义完魔方阵的行和列之后,进行断言,是为了判断该矩阵是否为奇数魔方阵; 第二步:就按着上面的规律来依次完成代码。(想要几阶的奇数魔方阵只需改变宏定义的行即可) #include
    admin 今天
  • 运用for 循环 输出菱形
    其他

    运用for 循环 输出菱形

    #include int main() {     int line,i,j,m;     printf("请输入行数");     scanf("%d",&line);     for(i=0;i=0;i--)//控制下半部分的行数     {         for(j=0;j
    admin 今天
  • C++ 正则匹配实用示例
    其他

    C++ 正则匹配实用示例

    正则表达式匹配: 头文件: #include 例子: #include #include using namespace std; int main() {     regex reg("\\d{4,6}");  //匹配4--6位的数字     string testNum = "99999";     smatch result;     bool ret = regex_match(testNum, result, reg);     cout << (ret ? "格式正确" : "格式不正确") << endl;     return 0; } 常用匹配示例: 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除
    admin 今天
  • 旅行售货员问题
    其他

    旅行售货员问题

    const int INF = 10000000; ///p240.6 int n, cc = 0, bestc = INF; int **g; int *x, *bestx; void travel(int t) { if (t == n) { if (g[x[t - 1]][x[t]] != INF && g[x[t]][1] != INF && (cc + g[x[t - 1]][x[t]] + g[x[t]][1] < bestc || bestc == INF)) { for (int i = 0; i < n + 1; i++) bestx[i] = x[i]; bestc = cc + g[x[t - 1]][x[t]] + g[x[t]][1]; } return; } for (int i = t; i < n; i++) { if (g
    admin 今天
  • C语言 除法问题【第四讲】
    其他

    C语言 除法问题【第四讲】

    题目描述 输入正整数n,遇到文件末尾结束。按从小到大顺序输出所有形如abcde/fghij=n的表达式,其中a到j恰好为数字0到9的一个排列(可以有前导0),无解输出“no answer”,n在2到79之间。 输入 一行输入一个正整数n。 输出 形如abcde/fghij=n的表达式 样例 62 79546 / 01283 = 62 94736 / 01528 = 62 代码 #include int test(int m,int n)//用来查找是否为0~9的全排列 { int t[10]={0},k=0; while(m){ t[k++]=m%10; m=m/10; } while(n){ t[k++]=n%10; n=n/10; } for(int i=0;i<10;i++) { for(int j=i+1;j<10;j++) { if(t[i]==t[j]) return 0; } } return 1; } int main() {
    admin 今天
  • 【1500+行代码】基于stm32f407ze粤嵌GEC-M4开发板的按键密码锁、呼吸灯、蜂鸣器播放音乐、超声波测距报警及温湿度检测、呼吸灯亮度湿度、USART串口控制系统
    其他

    【1500+行代码】基于stm32f407ze粤嵌GEC-M4开发板的按键密码锁、呼吸灯、蜂鸣器播放音乐、超声波测距报警及温湿度检测、呼吸灯亮度湿度、USART串口控制系统

    【1500+行代码】基于stm32f407ze粤嵌GEC-M4开发板的按键密码锁、呼吸灯、蜂鸣器播放音乐、超声波测距报警及温湿度检测、呼吸灯亮度湿度、USART串口控制系统 工程: https://download.csdn.net/download/weixin_53403301/53981212 最新: https://blog.csdn.net/weixin_53403301/article/details/121684671 【1761行代码】基于stm32f4xx粤嵌GEC-M4的按键密码锁、呼吸灯、蜂鸣器音乐、超声波测距及倒车雷达、温湿度检测、光敏电阻自动灯光调节、USART串口控制系统 第一个循环时按键密码锁 输入正确的密码才能进入第二模式 第二模式即呼吸灯、蜂鸣器播放音乐系统 按键1播放生日快乐 按住按键2实现呼吸灯明暗循环变化 按键3播放Linkin Park的In The End 长按按
    admin 今天
  • vscode gdbserer远程调试arm-linux-gdb libncurses.so.6: cannot open shared object file
    其他

    vscode gdbserer远程调试arm-linux-gdb libncurses.so.6: cannot open shared object file

    在~/.bashrc里面添加该动态库路径还是提示找不到libncurses.so.6,我初步猜测原因是vscode启动调试时没有启动/etc/profile导致没有执行 ~/.bashrc,所有设置的动态库路径没有效果 在代码里面添加一个脚本,看看vscode远程调试时的一些环境变量,然后设置修改这些环境变量,满足arm-linux-gdb启动的条件 在launch.json 里面配置gdb为编写的脚本 “miDebuggerPath”:"${workspaceFolder}/gdb.sh" #!/bin/bash echo parm:$@ > 1 echo shell:$SHELL >> 1 echo path:$PATH >> 1 echo LD_LIBRARY_PATH:$LD_LIBRARY_PATH >> 1 #换成你们自己的路径 export LD_LIBRARY_PATH=$LD_L
    admin 今天