昨天,雷老师偶有闲致,评讲了n周前的C程序设计作业。其中讲到了一到求水仙花数的题,给出了一种漂亮的算法,在此记录下来。
原题
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。
解题
思路
初始化i=100。
①取i的各位数,百位a,十位b,个位c。
②判断i==a∧3+
引言 - 一时心起, libuv linux 搭建
有一天突然想起来想写个动画. 找了一下 ui 库太大. 后面想起以前弄过的 libuv. 但发现 libuv 相关资料也很少.
所以就有了这些内容.
libuv - https://github.com/li
基本概念
最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数。整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号。
最大公约数:也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b)
先上图
场景是这样的, 这几天给CS系统做一个微信支付的功能, 但是生成的二维码是在前台的电脑上..不可能让用户跑到前台的电脑上去扫描...然后拿出了N年前买的Arduino 做了一个二维码显示器..就可以放在前台的桌子上了.
淘宝有很多
libevent,一个非常好的c的网络库,最近开始学习并分析下,做个记录。源码选用的1.4版本。因为感觉这版的代码比较精简,也没有太多宏定义,个人感觉适合学习原理。
从哪里开始呢,我选择从一些最简单的基础的东西开始,由简入繁。
今天就带来libevent的最小堆生成,体会下libevent作者如何实
C语言中的void 和 void * 总结
1、void的作用
c语言中,void为“不确定类型”,不可以用void来声明变量。如:void a = 10;如果出现这样语句编译器会报错:variable or field ‘a’ declared void。
在C语言中void 常常用于:
首先,我们在每次学习一门课程时,都有这样的习惯,即阅读目录,了解本门课程所需要学习的范围和内容,对课程有着整体的把握。之后,在对本门课程进行学习时,就会有一种把控全局的感觉,不管学到哪,都会大体知道这一部分在知识体系里的作用和功能,也就更好的理解了知识的前因后果、来龙去脉。所以,在学习C语言之前
回声客户端:
1.所谓“回声”,是指客户端向服务器发送一条数据,服务器再将数据原样返回给客户端,就像声音一样,遇到障碍物会被“反弹回来”。
2.客户端也可以使用 write() / send() 函数向服务器发送数据,服务器也可以使用 read() / recv() 函数接收数据
#define
struct sockaddr_in serv_addr;
1.定义结构体变量,结构体是一种数据类型,那么就可以用它来定义变量
2.struct 结构体名 变量名;
(struct sockaddr*)&serv_addr
1.结构体指针,指针也可以指向一个结构体
2.强制类型转换的格式
typedef void( *sighandler_t)(int);
1.用typedef给类型起一个别名。
2.为函数指针类型定义别名,
3.函数指针(指向函数的指针)
sighandler_t signal(int signum, sighandler_t handler);
1.函数原型
https://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.html
assert是一个宏定义,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
1 #include <assert.h
static存储类型可以用于全部变量,无需考虑变量声明的位置。但是作用于块外部和块内部时具有不同的作用。
(1)当作用于函数内部时,和每次程序离开所在块就会丢失值的自动变量不同,static变量会保存下去,块内的static变量只会在程序执行前进行一次初始化,而自动
本文同时发表在 https://github.com/zhangyachen/zhangyachen.github.io/issues/123
写一下fopen/getc/putc等C库的粗略实现,参考了K&R,但是有几点根据自己理解的小改动,下面再具体说一下^_^
写这篇文章主要是帮助自己
十六进制数和十进制数类似,以小数点为界,整数部分从低位到高位依次是0次方位、1次方位、.、n次方位;小数部分从高位到低位依次是-1次方位、-2次方位、.、-m次方位.都可用加权求和的方式表示.十六进制数转换成十进制数时,先用加权求和的方式表示出来,再将十六进制数中的基数“10H”替换成对应的十进制数
Description
输入一个正整数n,求有几对素数x,y,满足n=x+y((3,2)和(2,3)视为相同的素数对)。
Input
有多组数据,每行输入一个偶整数n(3<n<32768)。n等于0时,输入结束。
Output
输出相应的答案。
Sample Input
6 10 12
一、PTA实验作业
题目1:查验身份证
1. 本题PTA提交列表
2. 设计思路
定义i,flag=1,z,m[11],a[19]
输入次数n
for i=1 to n+1
gets(a)
加权求和在取余计算z
switch(z)
对应查看a[17]与校验码是否一致
守护进程:
必须是init进程的子进程,运行在后台,不与任何控制终端相关联。
通过以下步骤成为守护进程
1.调用fork()创建出来一个新的进程,这个新进程会是将来的守护进程
2.在新守护进程的父进程中,调用exit(),为了守护进程的爷爷进程确认父进程结束
3.在新守护进程中,调用setsid()
1.等待终止的子进程(僵死进程):
如果一个子进程在父进程之前结束,内核会把子进程设置为一个特殊的状态,处于这种状态的进程称为僵死进程
当父进程获取了子进程的信息后,子进程才会消失。
pid_t wait(int *status);
父进程调用这个方法会被阻塞住,如果子进程终止的时候,此方法会调用并
1.Visual C++6.0的下载
本书中使用的Visual C++6.0的中文版,读者可以在网上搜索,下载合适的安装包。
2.Visual C++6.0的安装
Visual C++6.0的具体安装步骤如下:
(1)双击打开Visual C++6.0安装文件夹中的SETUP.EXE安装文件,如图1
ASCII表中的有些字符是打印不出来的,那么怎样表示这些无法打印的字符呢?
C提供了3种表示方法.
一: 直接使用ASCII码
二: 使用特殊的符号序列, 即转义字符.
三: C90支持使用十六进制形式表示字符常量.(在这种形式中,反斜杠后跟一个x或X,再加上1到3位十六进制数字)
转义字符