自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wohu1104的专栏

本博客为个人工作、学习和生活点滴记录

  • 博客(451)
  • 资源 (11)
  • 论坛 (34)
  • 收藏
  • 关注

原创 C++ OJ 中多行数据输入(整数个位数之和、大小写转换、通过移位运算实现2的n次方)

求整数个位数字之和while (cin >> a) { c = 0; for (int i = 1; (i < 11)&&(a != 0); ++i) { c += a % 10; a = a / 10; } cout << c << endl;}while(cin>>a>>b) 主要解决的是两个为一组的多组数据输入,当一次只输入一个数据.

2021-07-30 22:25:37 13

原创 C++ cout 输出保留小数

C 语言中 printf () 函数可以非常方便控制保留几位小数输出,在 C++ 当中也是可以控制小数保留,cout () 和 printf () 还是有一些区别。需要头文件 #include <iomanip>setprecision() 来用来保存有效数字,fixed 和 setprecision() 一起用就变成保存小数点后有效数字。fixed 可以通过 cout.unsetf(ios::fixed) ; 这段代码关掉。不然会一直开着。fixed 有个地方需要注意的是

2021-07-29 20:47:26 6

原创 算法基础(06)— 线性循环链表实战

1. 循环链表定义单链的循环链表结点的存储结构和单链表的存储结构一样, 所不同的是: 最后一个结点的 next 域指向头结点, 而不是“空”。这样, 由表尾很容易找到表头。但若链表较长, 则由表头找到表尾较费时, 因而, 单循环链表往往设立尾指针而不是头指针, 如图 2 31所示。这在两个链表首尾相连合并成一个链表时非常方便。...

2021-07-29 20:26:21 5

原创 算法基础(05)— 线性单链表实战

1. 设计思路本项目的实质是完成对考生信息的建立、查找、插入、修改、删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。2. 数据结构本项目的数据是一组考生信息,每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成,这组考生信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。由此可以看出,这些数据也具有线性表中数据元素的性质,所以该系统的数据可以采用线性表来存储。​从上一节的例子中可见,线性表的

2021-07-19 20:29:22 6

原创 算法基础(04)— 线性顺序表实战

1. 实战简介本实战的实质是完成对学生成绩信息的建立、查找、插入、修改、删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。2. 数据结构本项目的数据是一组学生的成绩信息,每条学生的成绩信息由学号、姓名和成绩组成,这组学生的成绩信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。由此可以看出,这些数据具有线性表中数据元素的性质,所以该系统的数据采用线性表来存储。​顺序表是线性表的顺序存储结构,是指用一组

2021-07-15 21:02:00 28

原创 算法基础(03)— 数据处理基本操作(数据的查找、新增、删除、修改)

我们先来看一个关于查找的例子。查找,就是从复杂的数据结构中,找到满足某个条件的元素。通常可从以下两个方面来对数据进行查找操作:​根据元素的位置或索引来查找;根据元素的数值特征来查找。针对上述两种情况,我们分别给出例子进行详细介绍。​1. 从数组中找元素例 1,我们来看第二个例子,对于一个数组,找到数组中的第二个元素并输出。​这个问题的处理很简单。由于数组本身具有索引 index ,因此直接通过索引就能查找到其第二个元素。别忘了,数组的索引值是从 0 开始的,因此第二个元素的索引值是 1

2021-07-14 20:36:56 19 2

原创 算法基础(02)— 时间复杂度与空间复杂度转换

1. 时间复杂度转化为空间复杂度常用的降低时间复杂度的方法有递归、二分法、排序算法、动态规划等,降低空间复杂度的核心思路就是,能用低复杂度的数据结构能解决问题,就千万不要用高复杂度的数据结构。​在程序开发中,连接时间和空间的桥梁就是数据结构。对于一个开发任务,如果你能找到一种高效的数据组织方式,采用合理的数据结构的话,那就可以实现时间复杂度的再次降低。同样的,这通常会增加数据的存储量,也就是增加了空间复杂度。​转化步骤的流程如下:暴力解法。在没有任何时间、空间约束下,完成代码任务的开发;无效

2021-07-13 20:57:13 8

原创 算法基础(01)— 算法复杂度概念及常见的复杂度计算

1. 大 O 表示法大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度。大 O 表示法指出了最糟情况下的运行时间。大 O 表示法在讨论运行时间时,log 指的都是 log2。2. 复杂度概念复杂度是一个关于输入数据量 n 的函数。假设你的代码复杂度是 f(n),那么就用个大写字母 O 和括号,把 f(n) 括起来就可以了,即 O(f(n))。例如,O(n) 表示的是,复杂度与计算实例的个数 n 线性相关;O(logn) 表示的是,复杂度与计算实例的个

2021-07-12 20:29:40 16

原创 C++ 笔记(34)— C++ exit 函数

当遇到 main 函数中的 return 语句时,C++ 程序将停止执行。但其他函数结束时,程序并不会停止。程序的控制将返回到函数调用之后的位置。然而,有时候会出现一些非常少见的情况,使得程序有必要在 main 以外的函数中终止。要实现这一点,可以使用 exit 函数。​当调用 exit 函数时,无论是哪个函数包含了该调用,都将导致程序停止。见如下示例代码:#include <iostream>#include <cstdlib>using namespace std;

2021-07-08 20:27:05 9

原创 C++ 笔记(33)— C/C++ 程序员常见面试试题深入剖析

1. 找错题试题1:void test1(){ char string[10]; char* str1 = "0123456789"; strcpy(string, str1);} 错误原因:字符串 str1 需要 11 个字节才能存放下(包括末尾的 \0),而 string只有 10 个字节的空间,strcpy会导致数组越界;​试题2:void test2(){ char string[10], str1[10]; int i; for(i=0; i<10; i++)

2021-07-07 20:16:23 38 5

原创 C++ 笔记(32)— 预处理、文件包含include、宏替换define、条件包含ifndef、define

C/C++语言通过预处理器提供了一些语言功能。从概念上讲,预处理器是编译过程中单独执行的第一个步骤。两个最常用的预处理器指令是:#include指令( 用于在编译期间把指定文件的内容包含进当前文件中);#define指令( 用任意字符序列替代一个标记);1. 文件包含文件包含指令( 即 #include指令)使得处理大量的 #define指令以及声明更加方便。在源文件中,任何形如:#include “文件名”或者#include <文件名>的行都将被替换为由文件名指定的文

2021-06-23 23:03:16 82 2

原创 C++ 笔记(31)— 类继承

1. 私有和保护成员函数或成员数据可以是公有或者私有的。如果是公有的,那么它们可以被直接访问;如果是私有的,那么它们无法被直接访问。同时,还有一个 protected 保留字,在没有使用继承的时候,它与 private 的效果是一样的,即无法被直接访问。如果使用了继承,我们就能体会到 protected 和 private 的差别。​private(私有)和 protected(保护)都能实现类的封装性。private 能够对外部和子类保密,即除了成员所在的类本身可以访问之外,别的都不能直接访问;

2021-06-22 22:00:22 18 2

原创 C++ 笔记(30)— 友元函数与友元类

我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦。​C++ 设计者认为, 如果有的程序员真的非常怕麻烦,就是想在类的成员函数外部直接访问对象的私有成员,那还是做一点妥协以满足他们的愿望为好,这也算是眼前利益和长远利益的折中。因此,C++ 就有了友元(friend)的概念。打个比方,这相当于是说:朋友是值得信任的,所以可以对他们公开一些自己的隐私。​友元

2021-06-15 22:47:09 33

原创 C/C++ 编程规范(02)— 标识符命名

标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。说明:较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一 些单词有大家公认的缩写。示例:如下单词的缩写能够被大家基本认可。temp 可缩写为 tmp ;flag 可缩写为 flg ;statistic 可缩写为 stat ;increment 可缩写为 inc ;message 可缩写为 msg ;命名中若使用特殊约定或缩写,则要有注释说明。说明:应该.

2021-06-12 22:23:34 31 2

原创 C/C++ 编程规范(01 )— 排版

程序块要采用缩进风格编写,缩进的空格数为 4 个 。相对独立的程序块之间、变量说明之后必须加空行。if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;较长的语句(>80 字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。p.

2021-06-11 23:11:04 111 3

原创 C++ 笔记(29)— 结构体、结构体作为函数参数、作为返回值、结构体数组、结构体指针、typedef 定义结构体

1. 结构体定义结构体是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。为了定义结构,必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:struct type_name { member_type1 member_name1; member_type2 member_name2; member_type3 member_name3; ...} object_names;t

2021-06-08 23:05:12 71 8

原创 C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的。1. NULL 在 C/C++ 中的定义先来看下 C99 是怎么定义 NULL 的:NULL can be defined as any null pointer constant. Thus existing code can retain definitions of NULL as 0 or 0L, but an

2021-05-15 23:15:26 74

原创 etcd 笔记(09)— 基于 etcd 实现微服务的注册与发现

1. 服务注册与发现基本概念在单体应用向微服务架构演进的过程中,原本的巨石型应用会按照业务需求被拆分成多个微服务,每个服务提供特定的功能,也可能依赖于其他的微服务。此时,每个微服务实例都可以动态部署,服务实例之间的调用通过轻量级的远程调用方式(HTTP、消息队列等)实现,它们之间通过预先定义好的接口进行访问。在微服务架构中,多个微服务间的通信需要依赖服务注册与发现组件获取指定服务实例的地址信息,才能正确地发起 RPC 调用,保证分布式系统的高可用、高并发。服务注册与发现主要包含两部分:服务注册的功能与

2021-05-12 22:21:54 85

原创 etcd 笔记(08)— 基于 etcd 实现分布式锁

1. 为什么需要分布式锁?在分布式环境下,数据一致性问题一直是个难点。分布式与单机环境最大的不同在于它不是多线程而是多进程。由于多线程可以共享堆内存,因此可以简单地采取内存作为标记存储位置。而多进程可能都不在同一台物理机上,就需要将标记存储在一个所有进程都能看到的地方。例如秒杀场景就是一个常见的多进程场景。订单服务部署了多个服务实例,如秒杀商品有 4 个,第一个用户购买 3 个,第二个用户购买 2 个,理想状态下第一个用户能购买成功,第二个用户提示购买失败,反之亦可。而实际可能出现的情况是,两个用户都得

2021-05-10 22:50:22 92

原创 etcd 笔记(07)— 键值对读写操作过程

1. 读写总体概述etcd 各个模块交互的总览,如下图所示:总体上的请求流程从上至下依次为客户端 → API 接口层 → etcd Server → etcd raft 算法库。读请求客户端通过负载均衡选择一个 etcd 节点发出读请求,API 接口层提供了 Range RPC 方法,etcd 服务端拦截到 gRPC 读请求后,调用相应的处理器处理请求。写请求客户端通过负载均衡选择一个 etcd 节点发起写请求,etcd 服务端拦截到 gRPC 写请求,涉及一些校验和监控,之后 KVS

2021-05-09 23:08:15 174 3

原创 etcd 笔记(06)— Client 结构定义、客户端(初始化、KV存储Get、Put、事务 Txn、压缩 Compact、Watch、Lease

1. Client 定义Client 定义如下:type Client struct { Cluster KV Lease Watcher Auth Maintenance // 认证的用户名 Username string // 认证的密码 Password string}这里显示的都是可导出的模块结构字段,代表了客户端能够使用的几大核心模块,具体功能介绍如下。Cluster:向集群里增加 etcd 服务端节点之

2021-05-08 22:01:34 100

原创 etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程

1. etcd 项目结构和功能etcd 项目代码的目录结构如下:$ tree├── auth├── build├── client├── clientv3├── contrib├── embed├── etcdctl├── etcdmain├── etcdserver├── functional├── hack├── integration├── lease├── logos├── mvcc├── pkg├── proxy├── raft├── scripts├─

2021-05-07 22:39:02 124

原创 etcd 笔记(04)— etcd 网关与 gRPC 网关

1. etcd 网关etcd 网关是一个简单的 TCP 代理,可将网络数据转发到 etcd 集群。网关是无状态且透明的,它既不会检查客户端请求,也不会干扰集群响应,支持多个 etcd 服务器实例,并采用简单的循环策略。etcd 网关将请求路由到可用端点,并向客户端隐藏故障,使得客户端感知不到服务端的故障。1.1 适用场景我们使用客户端连接到 etcd 服务器时,每个访问 etcd 的应用程序必须知道所要访问的 etcd 集群实例的地址,即用来提供客户端服务的地址:ETCD_LISTEN_CLIENT

2021-05-06 22:02:50 218 3

原创 etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)

1. etcd 客户端etcdctl 是一个命令行客户端,便于我们进行服务测试或手动修改数据库内容,etcdctl 在两个不同的 etcd 版本(v2 和 v3)下的功能和使用方式也完全不同。一般通过如下方式来指定使用 etcd 的版本:export ETCDCTL_API=2export ETCDCTL_API=3在前面我们已经在 /tmp/etcd-download-test/ 安装了 etcd,那么就可以将当前的安装路径加到环境变量 PATH 中,如下:vi ~/.bashrc在最后

2021-04-28 22:36:49 159

原创 etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd)

1. 使用 apt 或 yum 安装 etcd命令如下:sudo apt-get install etcd或者sudo yum install etcd这样安装的缺点是:安装的 etcd 版本过低为 2.2.5,该版本使用 Go 的版本为 1.6 如下所示:wohu@ubuntu-dev:~$ etcd2021-04-17 09:18:52.987281 I | etcdmain: etcd Version: 2.2.52021-04-17 09:18:52.987309 I | etc

2021-04-27 22:01:59 91 2

原创 etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论

1. etcd 简介etcd 官网定义:A highly-available key value store for shared configuration and service discovery.即一个用于配置共享和服务发现的键值存储系统。etcd 是一款分布式存储中间件,使用 Go 语言编写,并通过 Raft 一致性算法处理和确保分布式一致性,解决了分布式系统中数据一致性的问题。而且作为一款分布式、可靠的键值存储组件,etcd 常用于微服务架构中的服务注册与发现中心,相较于 ZooK

2021-04-26 22:40:10 116

原创 Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)

1. 获取本机 IP 地址package mainimport ( "fmt" "net")// 获取本机网卡IPfunc getLocalIP() (ipv4 string, err error) { // var ( // addrs []net.Addr // addr net.Addr // ipNet *net.IPNet // IP地址 // isIpNet bool // ) // 获取所有网卡 addrs, err := net.InterfaceA

2021-04-22 22:17:48 54

原创 Go 学习笔记(78)— Go 标准库 net/http 创建服务端(接收 GET、POST 请求)

使用 net/http 标准库创建一个 http 的 restful api 的服务端,用来处理 GET、POST 等请求。源代码如下:package mainimport ( "encoding/json" "fmt" "net" "net/http" "strconv" "time")type Contact struct { Home string `json:"home"` Cell string `json:"cell"`}type Student struct

2021-04-21 22:21:21 38

原创 Go 学习笔记(77)— Go 第三方库之 cronexpr(解析 crontab 表达式)

cronexpr 支持的比 Linux 自身的 crontab 更详细,精确到秒级别。1. 解析 crontab 表达式package mainimport ( "fmt" "time" "github.com/gorhill/cronexpr")func doTask() { fmt.Println("I am running")}func main() { // 每隔 5 秒执行1次 expr, err := cronexpr.Parse("*/5 * * * * *

2021-04-20 22:28:22 89

原创 Go 知识点(15)— 切片长度和容量

1. 切片声明时默认的长度和容量1.1 切片声明时不指定容量切片在使用 make 声明时,如果没有显式的说明切片的容量,那么默认容量和切片的长度保持一致。func main() { s1 := make([]int, 3) fmt.Println("s1 length: ", len(s1)) // s1 length: 3 fmt.Println("s1 capacity: ", cap(s1)) // s1 capacity: 3 fmt.Printf("s1 value: %#v

2021-04-19 22:59:05 63 1

原创 Go 知识点(14) — Go 多协程并发环境下的错误处理

在多协程并发环境下,我们常常会碰到以下两个问题。假设我们现在有 2 个协程,我们叫它们协程 A 和 B 。【问题1】如果协程 A 发生了 panic ,协程 B 是否会因为协程 A 的 panic 而挂掉?【问题2】如果协程 A 发生了 panic ,协程 B 是否能用 recover 捕获到协程 A 的 panic ?答案分别是:会、不能。1.【问题1】【问题1】如果协程 A 发生了 panic ,协程 B 是否会因为协程 A 的 panic 而挂掉?package mainim

2021-04-18 23:04:05 76

原创 Go 知识点(13) — 如何判断变量类型

在 Go 语言中可以使用类型断言来判断变量的类型,类型断言的使用有两种方式:返回两个值,分别是断言为设置类型后的值和断言成功的标志符;返回一个值,表示断言为设置类型的值;1. 返回单个值的使用1.1 断言成功如下代码,假如我们无法判断变量 a 的类型,可以使用下面的断言方式func main() { a := []int{1, 2, 3} value := interface{}(a).([]int) fmt.Printf("value is %#v\n", value) // val

2021-04-16 22:34:06 20

原创 Go 知识点(12) — 类型转换

类型转换在编程语言中是很常见的操作,在 Go 语言中其类型转换有下面一些注意点。1. 整数类型之间的转换对于整数类型转换,原则上目标类型的取值范围要包含被转换值,也就是说要转换类型的值取值范围要小于目标类型的取值范围。如果相反,即目标类型小,而要转换的源值类型大,比如把值的类型从 int16 转换为 int8 ,会出现截断现象,如下代码:func main() { src := int16(-255) dst := int8(src) fmt.Println("dst is ", dst) /

2021-04-14 23:05:16 18

原创 Go 知识点(11) — goroutine 泄露、设置子协程退出条件

1. 问题现象如果在开发过程中不考虑 goroutine 在什么时候能退出和控制 goroutine 生命期,就会造成 goroutine 失控或者泄露的情况 ,看示例代码:func consumer(ch chan int) { for { data := <-ch fmt.Println(data) }}func main() { ch := make(chan int) for { var input string // 获取输入,模拟进程持续运行 fmt.

2021-04-12 22:06:13 59

原创 Go 知识点(10) — 子协程能否使用主协程变量

我们来看这样一个问题,在主协程中创建的变量,在子协程中能否使用?来看下面代码:func main() { s := "hello" fmt.Printf("s outside address is %v\n", &s) // 0xc0000101e0 var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() s = "world" fmt.Printf("s inside address is %v\n", &a

2021-04-11 22:08:50 32

原创 Go 知识点(09)— for select 作用于 channel

1. for select 作用于未关闭的通道1.1 没有 default 分之场景先看下面代码func main() { ch := make(chan int, 3) go func() { time.Sleep(2 * time.Second) // 延迟往通道里里面发送数据 ch <- 1 }() for { select { case v, ok := <-ch: fmt.Printf("v=%v, ok=%v\n", v, ok) time

2021-04-10 21:05:27 54

原创 Go 知识点(08) — 对未初始化的 channel 进行读写操作

1. 对未初始化的 channel 进行写操作先看下面代码func main() { var ch chan int // 只声明,并没有初始化 fmt.Printf("ch is %v\n", ch) // ch is <nil> ch <- 1}运行上述代码,会有如下输出结果:ch is <nil>fatal error: all goroutines are asleep - deadlock!goroutine 1 [c

2021-04-09 22:21:36 66

原创 Go 知识点(07)— 对已经关闭通道进行读写

今天我们来看下对已经关闭通道进行读写会发生什么情况。1. 对已关闭通道进行写操作看下面代码会输出什么结果?func main() { ch := make(chan string, 1) close(ch) ch <- "hello, world" fmt.Println(<-ch)}输出结果为:panic: send on closed channel这个结果无论对于非缓冲通道还是缓冲通道都是一样的,即对已经关闭的通道进行写操作,会触发 panic 。2. 对已关闭

2021-04-08 22:15:18 92

原创 Go 知识点(06)— for range 切片并对切片进行 append 不会造成死循环

想想下面代码会发生什么?func main() { a := []int{1, 2, 3} for _, v := range a { a = append(a, v) fmt.Println("len(a)=", len(a)) } fmt.Printf("a is %#v", a)}会造成死循环吗? 答案是:不会。对于 Go 中的 for ... range 而言,实际上在循环之前就已经获取了切片的长度,然后再执行固定次数的循环,所以上面代码打印结果是:len(a)= 4l

2021-04-07 21:39:27 34

原创 Go 知识点(05)— 类型别名与类型定义

1. 类型别名类型别名需要在别名和原类型之间加上赋值符号 = ,使用类型别名定义的类型与原类型等价,Go 语言内建的基本类型中就存在两个别名类型。byte 是 uint8 的别名类型;rune 是 int32 的别名类型;类型别名定义形式如下:type MyString = string上面代码表明 MyString 是 string 类型的别名类型。也就是说别名类型和源类型表示的是同一个目标,就譬如每个人的学名和乳名一样,都表示同一个人。定义 string 类型的别名,示例代码:f

2021-04-06 21:59:51 36 2

数据结构与算法分析 算法的经典著作

经典的数据结构算法与分析 可以与C语言结合起来很好的学习 对于提高C有很大的帮助

2011-05-24

4位十进制频率计设计

详细讲述了4位十进制频率机的设计以及应用,很有帮助对学习VHDL

2011-05-20

4位EDA计数器(VHDL语言)

详细说明了4位十进制的VHDL表示方法,以此为经验可以编写任意进制的计数器

2011-05-20

OFDM MATLAB 仿真程序

OFDM的 MATLAB 仿真程序,可以帮助你更好的理解OFDM的原理,以及在学习过程中更好的利用OFDM做毕业设计等等。

2011-05-22

让你不再害怕指针 经典的指针讲解和练习

拥有它 你就可以完全理解C的精华 再也不害怕指针了 堪称经典!!

2011-02-18

c和指针课后题答案(完整版)

《C和指针》答案的完整版,详细列举了书后面每道题的答案,对于自学有很大的帮助

2011-05-24

C语言趣味程序百例精解

主要针对C语言的初学者,很有启发性,可以认真的看看

2011-05-08

C陷阱与缺陷,经典中的经典

这个不用说了吧,很经典的,详细描述了在编写程序和调试程序时的关键环节

2011-05-08

高质量的C++/C编程指南

很好的一本书,有了它找工作很方便的,书中列举了各种常犯的错误,是用人单位最爱考的部分。很好,用过就知道

2011-05-14

C语言经典编程实例 带程序结果

C语言经典编程,给出了在学习C的过程中的经典程序,值得一看,很实用的,是学习C很好的材料,可以帮你少走弯路。

2011-05-24

python线程初学者,谁能帮忙看下这段程序的输出结果为啥不对

发表于 2016-12-04 最后回复 2016-12-05

下面这个判断单链表是否有环的程序对吗?

发表于 2012-04-18 最后回复 2016-12-04

python爬虫糗事百科入门求助

发表于 2015-07-05 最后回复 2016-12-04

关键字static的作用是什么

发表于 2015-08-06 最后回复 2016-08-19

各位大侠,用ultraedit编辑C语言,有什么好处吗?

发表于 2012-02-19 最后回复 2015-07-05

各位大侠,linux下C的开发怎样?

发表于 2012-02-02 最后回复 2015-07-05

新手学习python处理xml有个问题求指导

发表于 2015-06-20 最后回复 2015-07-05

菜鸟求助

发表于 2013-12-17 最后回复 2015-06-20

Python 中汉字注释问题,各位大侠帮忙看下

发表于 2014-04-19 最后回复 2015-06-20

如何将两行字符串按照字母顺序排列成新的字符串序列?

发表于 2013-01-31 最后回复 2013-02-02

linux为什么要升级内核?升级内核有何作用?

发表于 2012-02-06 最后回复 2012-11-23

linux隐藏工具栏后如何恢复?背景颜色如何设置?

发表于 2012-02-08 最后回复 2012-11-23

各位大侠能解释下下面这段内存拷贝函数吗?

发表于 2012-04-18 最后回复 2012-04-19

哪位帮帮忙,用VHDL设计一个100分频的程序

发表于 2011-06-13 最后回复 2011-07-31

哪位帮忙说下,这段程序怎样插入排序

发表于 2011-07-12 最后回复 2011-07-13

帮忙看下 这段VHDL的错误

发表于 2011-06-20 最后回复 2011-06-22

哪位帮我看下这段VHDL哪里有错误

发表于 2011-06-15 最后回复 2011-06-22

求高手 看看这段VHDL程序的错误

发表于 2011-06-17 最后回复 2011-06-18

哪位能告诉下这段VHDL程序的错误

发表于 2011-05-25 最后回复 2011-06-13

哪位能帮我看下这段VHDL程序,在线等

发表于 2011-06-02 最后回复 2011-06-02

哪位能告诉下这段VHDL程序的错误

发表于 2011-05-24 最后回复 2011-05-25

写出float x 与“零值”比较的if语句

发表于 2011-05-10 最后回复 2011-05-10

谁能给我解释下下面这几道题,谢谢

发表于 2011-04-30 最后回复 2011-04-30

各位大侠《C++ Primer Plus》这本书怎样啊?

发表于 2011-04-08 最后回复 2011-04-17

这个程序哪里有问题

发表于 2011-03-30 最后回复 2011-03-30

三天打渔两天撒网问题

发表于 2011-03-27 最后回复 2011-03-30

各位大侠,给小弟推荐一本C++程序的教材

发表于 2011-03-22 最后回复 2011-03-27

各位大侠,能给小弟推荐一本C++的书吗?

发表于 2011-03-23 最后回复 2011-03-25

谁能告诉我,这个程序怎么改

发表于 2011-03-13 最后回复 2011-03-13

高手看下程序,小弟新手

发表于 2011-03-11 最后回复 2011-03-13

麻烦高手看下程序

发表于 2011-03-06 最后回复 2011-03-06

请教一个数组的题

发表于 2011-03-01 最后回复 2011-03-01

求数组中的最大值

发表于 2011-02-26 最后回复 2011-02-26

麻烦各位帮我看下程序出了什么问题

发表于 2011-02-22 最后回复 2011-02-26

空空如也

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

TA关注的人 TA的粉丝

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