自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 投票系统(C语言)

设计一个投票系统首先定义一个选民结构体,结构体内包选民名字和获得票数struct XuanMin{ char name[32]; int tickets;};对于选民首先要初始化信息,票数清零,确定选民名字//初始化选民信息 for(i=0;i<len;i++){ xm[i].tickets = 0; printf("请输入第%d个选民的名字\n",i+1); scanf("%s",xm[i].name); }然后是唱票环节,这里的mark用来确定投出去的票是

2022-03-31 17:56:33 5768 1

原创 C语言—联合体/共用体

联合体的定义同一个内存空间存放类型不同,不同类型变量共享一块内存空间。结构体和联合体的区别1.结构体元素有各自单独的空间  联合体元素共享空间,空间大小由最大类型确定2.结构体元素互不影响   联合体赋值会导致覆盖联合体的定义:union testU{ int a; int b; char c;};这里定义一个结构体,内容一样都是int a;int b; char c;打印得到结构体和联合体的大小 + a.b.c三个变量的地址这

2022-03-31 16:36:04 3482

原创 C语言—选择排序

C语言在一个数组中输入需要排序的数,然后将这一串数从小到大排序后输出#include <stdio.h>int main(){ int a[] = {8,13,12,9,7}; //定义一个数组,不给定数组的大小,可以随意加减数组的元素 int len = sizeof(a)/sizeof(a[0]); //定义一个len来计算数组的大小 int i,j; int tmp; for(i=0;i<len-1;i++){ for(j=i+1;

2022-03-30 16:14:43 247

原创 C语言—冒泡排序

C语言冒泡排序在一个数组中输入需要排序的数,然后将这一串数从大到小排序后输出#include <stdio.h>int main(){ int a[] = {8,13,12,9,7}; //定义一个数组,不给定数组的大小,可以随意加减数组的元素 int len = sizeof(a)/sizeof(a[0]); //定义一个len来计算数组的大小 int i,j; int tmp; for(i=0;i<len-1;i++){ //外层循

2022-03-30 15:59:17 1300

原创 Linux系统编程(进程)———进程退出

vfork函数进程退出vfork函数vfork函数 也可以创建进程,与fork有什么区别?关键区别一:vfork直接使用父进程存储空间,不拷贝。关键区别二:vfork保证子进程先运行,当子进程调用exit退出后,父进程才执行。代码:#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <stdlib.h>int main(){ pid_.

2021-08-11 14:08:16 277

原创 Linux系统编程(进程)———创建进程的实际应用

fork创建一个子进程的一般目的(1)一个父进程失望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当这种请求达到时,父进程调用fork,使子进程处理此请求。父进程则继续等待下一个服务请求到达。(2)一个进程要执行一个不同的程序。这对shell是常见的情况。在这种情况下,子进程从fork返回后立即调用exec。这里做一个简单的测试#include <stdio.h>#include <unistd.h>#include

2021-07-22 11:44:05 107

原创 Linux系统编程(进程)——创建进程函数fork/vfork的使用

Linux系统编程(进程)——创建进程函数fork的使用使用fork函数创建一个进程 #include <unistd.h> pid_t fork(void);fork函数调用成功,返回两次返回值为0,代表当前进程是子进程返回值为非负数,代表当前进程为父进程调用失败,返回值为-1#include <stdio.h>#include <unistd.h>#include <sys/types.h>int mai

2021-07-22 11:42:43 474 1

原创 Linux系统编程(文件)———文件编程应用(配置文件修改,写结构体数组到文件),标准C库对文件的操作

配置文件的修改配置文件的修改比如这是我们的一个软件的配置文件我们需要将LENG的参数改成5操作1.找到需要修改的字段的的首位置。2.首位置往后移到需要修改的参数的位置3.修改参数的内容#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h.

2021-07-21 23:33:15 165

原创 Linux系统编程(文件)———CP指令、判断文件大小

CP指令判断文件大小CP指令比如说要要将src.c文件拷贝成des.c文件cp src.c des.c思路1.打开src.c2.读取src到buf3.打开/创建des.c4.将buf写到des.c5.关闭两个文件测试代码:#include <stdio.h>int main(int argc,char **argv){ printf("totol params:%d\n",argc); printf("NO.1 params :%.

2021-07-21 22:08:19 335 1

原创 Linux系统编程(文件)———文件打开/创建、写入、读取

文件编程 打开/创建文件写入文件读取文件文件光标位置打开/创建文件函数原型 //头文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t

2021-07-17 18:33:07 2311

原创 Linux环境下,基于Ncurse图形库贪吃蛇小游戏(下)

Linux环境下,基于Ncurse图形库贪吃蛇小游戏(下)蛇移动的不合理(用绝对值来解决)蛇吃食物(链表的添加和食物的随机出来)蛇自己咬死自己(尾节点与其余节点重合初始化蛇)最后完全代码:#include <curses.h>#include <stdlib.h>#include <pthread.h>#define UP 1#define DOWN -1#define LEFT 2#define RIGHT -2stru

2021-07-17 16:39:37 118

原创 Linux环境下,基于Ncurse图形库贪吃蛇小游戏(中)

Linux环境下,基于Ncurse图形库贪吃蛇小游戏(下)

2021-07-17 12:19:04 254

原创 Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)

Linux环境下基于Ncurse图形库的贪吃蛇小游戏这个小游戏的意义?这个小游戏对C语言基础、数据结构链表基础、C变量、流程控制、函数、指针、结构体等有一个很好的知识汇总学习。也是对Linux基础操作的一个简单学习。linux环境下代码如何编写,如何编译,如何运行,如何简单的创建程序和文件夹。有利于后续的Linux系统编程的学习这个小游戏是对C语言基础和Linux系统编程的学习起到一个承上启下的作用。为什么要基于Ncurse图形库?因为Ncurses有可以快速获取键盘的输入,用于控制蛇身的移动,

2021-07-16 12:09:04 370 1

原创 链表的动态创建

链表的动态创建头插法尾插法struct Test* insertFromHead(struct Test* head){ struct Test *new; while(1){ new = (struct Test *)malloc(sizeof(struct Test)); printf("input your new node data:\n"); scanf("%d"

2021-07-13 13:04:03 112

原创 链表的插入和删除

链表的插入有前插和后插两种方法。插入后插:1.静态创建一个链表。2.声明一个指针p指向链表头结点。3.判断链表的下一个是否为空,不为空执行循环。4.遍历寻找需要插入的位置。(p = p->next)5.将新节点的next指向插入位置的next。new->next = p->next.6.插入位置的next执行新节点。 p->next = new.int insertFromBehind(struct Test *head,int data,struct Tes

2021-07-13 09:58:07 3198

原创 统计链表节点个数和链表查找

统计链表节点个数和链表查找先定义一个链表的结构体。struct Test{ int data; struct Test *next;};静态创建一个链表struct Test t1 = {1,NULL}; struct Test t2 = {2,NULL}; struct Test t3 = {3,NULL}; struct Test t4 = {4,NULL}; struct Test t5 =

2021-07-12 23:32:53 935 1

原创 Arduino智能垃圾桶

Arduino智能垃圾桶硬件准备工作原理接线方式代码补充 舵机和超声波调试舵机超声波传感器这个小项目是基于Arduino设计的一款感应式智能开盖垃圾桶这个项目只要一点C语言的基础,懂得一点点物联网知识就可以,是一个刚入行物联网值得练手的小项目。硬件准备Arduino UNOHC-SR04超声波模块SG90舵机杜邦线若干工作原理当手靠近垃圾桶时,超声波传感器测出两者之间的距离,距离小于设定的阈值,舵机转动,垃圾桶盖打开。接线方式Arduino5VGND引脚

2021-05-21 15:04:59 12499 15

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除