- C语言代码练习(第十九天)
小小框架
C语言C语言重点练习c语言
今日练习:52、有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中53、输出"魔方阵"。所谓魔方阵是指它的每一行,每一列和对角线之和均相等。54、找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中运行代码intmain(){intarr[11]={1,3,9,12,15
- opencv学习:图像旋转的两种方法,旋转后的图片进行模板匹配代码实现
夜清寒风
学习opencv机器学习人工智能计算机视觉
图像旋转在图像处理中,rotate和rot90是两种常见的图像旋转方法,它们在功能和使用上有一些区别。下面我将分别介绍这两种方法,并解释它们的主要区别rot90方法rot90方法是NumPy提供的一种数组旋转函数,它主要用于对二维数组(如图像)进行90度的旋转。这个方法比较简单,只支持90度的倍数旋转,不支持任意角度旋转。使用NumPy进行旋转使用NumPy的rot90函数对模板图像进行旋转操作。
- P2865 [USACO06NOV] Roadblocks G(洛谷)(次短路)
叶子清不青
算法
开一个二维数组dis[N][2]分别记录最短路和次短路即可。dijkstra和spfa均可,推荐spfa。//dijkstra#includeusingnamespacestd;constintN=1e5+5;typedeflonglongll;typedefpairPII;intn,m,k;intT;priority_queue,greater>q;structnode{inte,w;};vec
- 【Python】np.hstack()和np.vstack函数详解和示例
木彳
Python学习和使用过程积累python开发语言
本文通过函数原理和运行示例,对np.hstack()和np.vstack函数进行详解,以帮助大家理解和使用。更多Numpy函数详解和示例,可参考【Python】Numpy库近50个常用函数详解和示例,可作为工具手册使用目录np.hstack()函数解析运行示例一维数组二维数组np.vstack()函数解析运行示例np.hstack()np.hstack()是NumPy库中的一个函数,用于将两个或更
- 增强for循环 (for each循环)详解
blaizeer
Javajava
“我们仍需共生命的慷慨与繁华相爱,即使岁月以刻薄和荒芜相欺”文章目录前言文章有误敬请斧正不胜感恩!增强for循环1.遍历数组2.遍历字符串数组3.遍历集合(如List)4.遍历Set集合5.遍历Map的键值对6.遍历二维数组7.遍历对象数组总结前言写在开始:增强for循环(也称foreach循环)是迭代器遍历方法的一个“简化版”,是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合。
- 第二章 按问题编程
ronghuilin
程序特征程序设计
程序设计的基础,建立计算机编程思维,掌握基本问题的分析,与编写源程序。1.在一组数据中寻找一个元素操作“寻找”在计算机软件中是“搜索”,近几年称为“扫描”。首先应了解这些数据存放在什么结构中。一组数据能存储在线性表(one-to-one)中,每个元素只有一个前趋和后继,常用的是数组array,应用性能高的是栈Stack与队列queue。数学计算在计算机程序中的基础是矩阵计算,矩阵存放在二维数组中。
- Python笔记6----数组
weixin_34293911
python数据结构与算法c/c++
1、Python中的数组形式:用list和tuple等数据结构表示数组一维数组:list=[1,2,3,4]二维数组:list=[[1,2,3],[4,5,6],[7,8,9]]用array模块:array模块需要加载,而且运用的较少通过array函数创建数组(数组中的元素可以不是同一种类型),array.array('B',range(5))>>array('B',[1,2,3,4,5])提供a
- java迷宫问题 华为_深度优先搜索——迷宫问题(华为oj)
刘洛希
java迷宫问题华为
题目描述:定义一个二维数组N*M(其中2=n)38continue;39if(a[tx][ty]==0&&book[tx][ty]==0)40{41xy.x=tx;42xy.y=ty;43way.push_back(xy);44book[tx][ty]=1;45dfs(tx,ty,step+1);46book[tx][ty]=0;47way.pop_back();48}49}50return0;5
- 363. 矩形区域不超过 K 的最大数值和(C语言实现)
Buaaer(>ω<)
算法学习-Leetcode动态规划算法二分查找
文章目录363.矩形区域不超过K的最大数值和题干声明方法1-暴力枚举+简单dp方法2-暴力枚举+二维数组前缀和方法3-固定边界搜索方法4-固定边界搜索+dp优化方法5-固定边界搜索+前缀和+二分查找363.矩形区域不超过K的最大数值和本题涉及内容:一/二维前缀和问题、降维问题、暴力枚举问题、dp问题、二分查找问题题干给你一个m∗nm*nm∗n的矩阵matrixmatrixmatrix和一个整数kk
- 【Hot100】LeetCode—64. 最小路径和
山脚ice
#Hot100leetcode算法
目录1-思路题目识别动规五部曲2-实现⭐64.最小路径和——题解思路3-ACM实现原题链接:64.最小路径和1-思路题目识别识别1:给一个二维数组grid,每次只能向下或者向右移动一步识别2:求移动到右下角的最小路径和动规五部曲求的是路径的和,与不同路径的区别在于是否加上当前grid[i][j]的值2-实现⭐64.最小路径和——题解思路classSolution{publicintminPathS
- Java数组和字符串
bala_jiang
Javajava开发语言
前言介绍Java数组和字符串的定义和使用。目录前言一、数组(一)、数组概述(二)、数组的使用1.数组的声明和初始化(1)、静态初始化(2)、动态初始化(3)、数组默认初始化值2.数组的长度3.数组元素访问和遍历数组4.数组的扩容与拷贝(三)、二维数组(四)、数组工具类1.booleanequals(数组1,数组2)2.StringtoString(数组)3.voidfill(数组,值)4.void
- c++——vector
so_what_is
c++c++
1、一维数组2、二维数组定义:vector>vec(N1,vector(N2,value));N1:数组行;N2:数组列;value:数组值(默认为0);
- C#基础(4)二维数组
ling1s
C#基础c#开发语言
前言书接上回,我们已经介绍完了一维数组的使用,大抵了解的数组的基础功能和使用方法,现在我们就进入多维数组的讲解。而多维数组中,最常用的有二维数组,我们就以此为例子展开多维数组的讲解。因为其实很多概念我们在一维数组中已经有所解析,所以二维数组我们会讲的稍微快一些。基本概念一维数组是一个下标确定元素。那同理可得,二维数组就是两个下标确定元素,这两个下标我们习惯叫作行标和列标。申明申明方式其实和一维数组
- c++ 定义二位数组
黄卷青灯77
c++开发语言vector
在C++中,定义二维数组有几种常见的方式。以下是几个示例:1.静态二维数组定义:intarray[3][4];这里,array是一个3行4列的整数二维数组。初始化:intarray[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2.动态二维数组使用指针和动态内存分配:定义:int**array=newint*[3];//创建一个指向整型指针的指针,表示有3行fo
- 求矩阵两条对角线元素之和
-冰镇桂花杨梅汁
c语言矩阵对角线元素之和c语言应用二维数组
#include#includeintmain(){inta[3][3];//定义一个二维数组,三行三列,a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[3][0],a[3][1],a[3][2]inti,j,sum=0;printf("请输入9个数据给数组赋值:\n");for(i=0;i<3;i++)//i为行数,j为列数,一行一行存放9个数
- JAVA多维动态数组
天微亮。
java开发语言
JAVA多维动态数组一维数组数组大小size()增加元素add获取元素get删除元素remove修改元素set输出二维数组三维数组ArrayList类是一个可以动态修改的数组(队列),与普通数组的区别就是它是没有固定大小的限制,提供了相关的添加、删除、修改、遍历等功能。一维数组Listlist=newArrayList();Listlist表示声明一个名为list的变量,其类型是List。List
- Python中数组的索引方式(二维数组索引,布尔索引)和数组修改(增删行或列)
sjsjs11
python前端后端开发语言
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、一般索引一维数组二维数组二、布尔索引数组的修改删除(行或列)增加(行或列)前言Python中数组的索引方式(二维数组索引,布尔索引)和数组修改(行,列)一、一般索引一维数组importnumpyasnpa=np.array([1,2,3,4,5,6])print(a[[1,3,5]])#一维数组索引,输出[246]pr
- 对给定数组所对应的二叉树依次完成前序,中序,后序遍历,并输出遍历结果。
colorful_stars
C/C++算法算法数据结构c++
对给定数组所对应的二叉树依次完成前序,中序,后序遍历,并输出遍历结果。每行输入为一个二叉树,一维数组形式。其中-1表示Nil节点,例如:1,7,2,6,-1,4,8构成的二叉树如下图所示:结果以二维数组形式输出(前序,中序,后序遍历的结果),其中Nil节点不用输出。时间限制:C/C++1秒,其他语言2秒空间限制:C/C++256M,其他语言512M示例1输入例子:[1,7,2,6,-1,4,8]输
- 算法练习题13——除自身以外数组的乘积(动态规划)
mikey棒棒棒
算法dp动态规划Javaleetcode
太爱这个dp解法了很好懂欸家人们!二维数组...牛哇牛哇题目描述给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。示例1:输入:nums=[1,2,3,4]输出:[24,12,8,6]示例2:输
- PYTHON:Scipy的曲线适合NxM阵列?
潮易
pythonscipy开发语言
在Python中,`scipy.optimize`模块中的`curve_fit`函数可以用来拟合一维曲线到数据点,而它并不直接适用于处理二维数组(NxM矩阵)的数据。但是,我们可以将二维矩阵视为N个一维数据集,然后对每个一维数据集应用`curve_fit`来找到对应的一维曲线拟合参数。以下是一个示例代码,展示了如何处理NxM矩阵中的每一行作为一维数据进行曲线拟合:```pythonimportnu
- C++入门——数组1
aacsd@
c++算法数据结构
重生之你是C++大佬,当你打开这篇博客,竟然发现这点小题简直易如反掌,于是摩拳擦掌,写他个几千行代码。目录1.求行最大、列最小2.找素数3.求各行之和、各列之和及所有元素之和4.折半查找法5.字符串中查找某个字符6.数组的插入1.求行最大、列最小【问题描述】编写程序,找出m行n列的矩阵中每行元素的最大值以及每列元素的最小值。【输入形式】输入分m+1行:第一行为m和n的值,下面m行代表二维数组,其中
- PTA L1-048 矩阵A乘以B (15 分) 一维数组做法(C++{g++})
icudhdhd
矩阵算法线性代数
如题,别人的做法基本都是二维的哈,所以我就不用二维做了,想了个一维的办法.输入样例1:23123456347890-1-2-3-45678输出样例1:242022241653586328输入样例2:32382643-501732-115799688172Error:2!=3输出样例2↑虽然用二维数组来做非常之简单,因为你只需要知道TA的原理便可以通过For循环模拟出来直接得出结果.乘积矩阵解析:(
- [自用5.]C++动态内存的分配、使用和释放
.远_
C++学习笔记c++开发语言
new和deletenew和delete是运算符,不是函数,因此运行效率比较高为了与C语言兼容,C++仍保留了malloc和free,但是建议使用new和deletenew运算符使用方法:指针变量=new类型(常量);指针变量=new类型[表达式];//数组指针变量=new类型[表达式][表达式];//二维数组作用:从堆上分配一块“类型”指定大小的存储空间,返回首地址其中,常量是初始化的值,可以省
- 嵌入式学习之路 16(C语言基础学习——指针操作二维数组、指向函数的指针、指针的指针)
求学者1.0
学习c语言数据结构
一、指针操作二维整型数组1、二维数组的本质在C语言中,二维数组本质上是由多个一维数组组成的。例如,inta[2][3]可以看作是包含两个长度为3的一维整数数组。2、指针与二维数组对于二维数组inta[2][3],&a[0]的类型是int(*)[3],因为C语言中不直接支持int[3]*这种类型,所以需要使用int(*)[3]来表示指向包含3个整数的一维数组的指针。定义指针int(*p)[3]=a;
- 贪心算法---不同路径
小鱼在乎
数据结构与算法贪心算法算法数据结构
题目:一个机器人位于一个mxn网格的左上角。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?思路:动态规划五部曲:1.确定dp数组及含义。dp数组需要是一个二维数组,dp[i][j]代表从起始位置到下标为(i,j)位置的不同路径条数。2.确定递推公式。到达(i,j)位置可以从(i-1,j)向下走一步或者从(i,j-1)向右走一步。故dp[i][j]=dp[
- 图论基础1
万事尽全力
算法题汇总图论算法
图的储存方式邻接矩阵用二维数组来表示图结构。邻接矩阵是从节点的角度来表示图,有多少节点就申请多大的二维数组。在边少,节点多的情况下,会导致申请过大的二维数组,造成空间浪费。检查任意两个顶点间是否存在边的操作非常快适合稠密图,在边数接近顶点数平方的图中,邻接矩阵是一种空间效率较高的表示方法。邻接表用数组+链表的方式来表示。邻接表是从边的数量来表示图,有多少边才会申请对应大小的链表。对于稀疏图的存储,
- Java基础知识(部分、随手记)
木木ᶻ
java
目录基础知识:基本框架:注释:关键字:字面量:(数据类型)变量:注意事项:计算机的存储规则:基础语法:标识符:键盘录入:IDEA项目结构的介绍算数运算符:判断和循环顺序结构分支结构if语句switch语句格式while循环循环结构数组数组的静态初始化数组的地址值和元素访问数组元素访问数组的动态初始化二维数组二维数组的动态初始化Arrays类方法方法的定义带返回值方法的调用注意事项:方法的重载:面向
- LeetCode - 74. 搜索二维矩阵
virgilshi
LeetCode二分法
74.搜索二维矩阵编写一个高效的算法来判断mxn矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。解题思路:本题本质上还是在考察二分查找,二维数组本质上依然是一维数组,因此转换成熟知的一维数组的二分查找即可解题。请看代码。classSolution{public:boolsearchMatrix(vector>&matrix,
- C++定义数组的方式
weixin_45001971
c++数据结构算法
用常量定义一维数组定义10个元素的数组。/*方式一*/intnums[10]={0};/*方式二*/int*num=newnum[10]{0};/*方式三*/vectornum(10);/*方式四*/vectornum{1,2,3,4,5,6,7,8,9,10};二维数组定义2*2的二维数组。/*方式一*/intnum[2][2];/*方式二*/intnum[][2]={0,1,0};intnum
- C语言指针学习
July0923
C语言c语言指针编程语言
开始好好学习C语言啦,指针是C语言比较难的地方,但是非常重要,所以单独在此记录一下。有执念的人最可怕,一定要好好学习哇!!!C语言指针学习1、指针是什么?2、null指针3、指针的运算4、数组指针一维数组指针二维数组指针5、指针数组6、二级指针7、指针作为形参8、函数指针9、指针函数10、函数指针数组11、回调函数13、总结14、测试题1、指针是什么?含义:指针其实就是一个十六进制数,他也有自己的
- ios内付费
374016526
ios内付费
近年来写了很多IOS的程序,内付费也用到不少,使用IOS的内付费实现起来比较麻烦,这里我写了一个简单的内付费包,希望对大家有帮助。
具体使用如下:
这里的sender其实就是调用者,这里主要是为了回调使用。
[KuroStoreApi kuroStoreProductId:@"产品ID" storeSender:self storeFinishCallBa
- 20 款优秀的 Linux 终端仿真器
brotherlamp
linuxlinux视频linux资料linux自学linux教程
终端仿真器是一款用其它显示架构重现可视终端的计算机程序。换句话说就是终端仿真器能使哑终端看似像一台连接上了服务器的客户机。终端仿真器允许最终用户用文本用户界面和命令行来访问控制台和应用程序。(LCTT 译注:终端仿真器原意指对大型机-哑终端方式的模拟,不过在当今的 Linux 环境中,常指通过远程或本地方式连接的伪终端,俗称“终端”。)
你能从开源世界中找到大量的终端仿真器,它们
- Solr Deep Paging(solr 深分页)
eksliang
solr深分页solr分页性能问题
转载请出自出处:http://eksliang.iteye.com/blog/2148370
作者:eksliang(ickes) blg:http://eksliang.iteye.com/ 概述
长期以来,我们一直有一个深分页问题。如果直接跳到很靠后的页数,查询速度会比较慢。这是因为Solr的需要为查询从开始遍历所有数据。直到Solr的4.7这个问题一直没有一个很好的解决方案。直到solr
- 数据库面试题
18289753290
面试题 数据库
1.union ,union all
网络搜索出的最佳答案:
union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
2.索引有哪些分类?作用是
- Android TV屏幕适配
酷的飞上天空
android
先说下现在市面上TV分辨率的大概情况
两种分辨率为主
1.720标清,分辨率为1280x720.
屏幕尺寸以32寸为主,部分电视为42寸
2.1080p全高清,分辨率为1920x1080
屏幕尺寸以42寸为主,此分辨率电视屏幕从32寸到50寸都有
适配遇到问题,已1080p尺寸为例:
分辨率固定不变,屏幕尺寸变化较大。
如:效果图尺寸为1920x1080,如果使用d
- Timer定时器与ActionListener联合应用
永夜-极光
java
功能:在控制台每秒输出一次
代码:
package Main;
import javax.swing.Timer;
import java.awt.event.*;
public class T {
private static int count = 0;
public static void main(String[] args){
- Ubuntu14.04系统Tab键不能自动补全问题解决
随便小屋
Ubuntu 14.04
Unbuntu 14.4安装之后就在终端中使用Tab键不能自动补全,解决办法如下:
1、利用vi编辑器打开/etc/bash.bashrc文件(需要root权限)
sudo vi /etc/bash.bashrc
接下来会提示输入密码
2、找到文件中的下列代码
#enable bash completion in interactive shells
#if
- 学会人际关系三招 轻松走职场
aijuans
职场
要想成功,仅有专业能力是不够的,处理好与老板、同事及下属的人际关系也是门大学问。如何才能在职场如鱼得水、游刃有余呢?在此,教您简单实用的三个窍门。
第一,多汇报
最近,管理学又提出了一个新名词“追随力”。它告诉我们,做下属最关键的就是要多请示汇报,让上司随时了解你的工作进度,有了新想法也要及时建议。不知不觉,你就有了“追随力”,上司会越来越了解和信任你。
第二,勤沟通
团队的力
- 《O2O:移动互联网时代的商业革命》读书笔记
aoyouzi
读书笔记
移动互联网的未来:碎片化内容+碎片化渠道=各式精准、互动的新型社会化营销。
O2O:Online to OffLine 线上线下活动
O2O就是在移动互联网时代,生活消费领域通过线上和线下互动的一种新型商业模式。
手机二维码本质:O2O商务行为从线下现实世界到线上虚拟世界的入口。
线上虚拟世界创造的本意是打破信息鸿沟,让不同地域、不同需求的人
- js实现图片随鼠标滚动的效果
百合不是茶
JavaScript滚动属性的获取图片滚动属性获取页面加载
1,获取样式属性值
top 与顶部的距离
left 与左边的距离
right 与右边的距离
bottom 与下边的距离
zIndex 层叠层次
例子:获取左边的宽度,当css写在body标签中时
<div id="adver" style="position:absolute;top:50px;left:1000p
- ajax同步异步参数async
bijian1013
jqueryAjaxasync
开发项目开发过程中,需要将ajax的返回值赋到全局变量中,然后在该页面其他地方引用,因为ajax异步的原因一直无法成功,需将async:false,使其变成同步的。
格式:
$.ajax({ type: 'POST', ur
- Webx3框架(1)
Bill_chen
eclipsespringmaven框架ibatis
Webx是淘宝开发的一套Web开发框架,Webx3是其第三个升级版本;采用Eclipse的开发环境,现在支持java开发;
采用turbine原型的MVC框架,扩展了Spring容器,利用Maven进行项目的构建管理,灵活的ibatis持久层支持,总的来说,还是一套很不错的Web框架。
Webx3遵循turbine风格,velocity的模板被分为layout/screen/control三部
- 【MongoDB学习笔记五】MongoDB概述
bit1129
mongodb
MongoDB是面向文档的NoSQL数据库,尽量业界还对MongoDB存在一些质疑的声音,比如性能尤其是查询性能、数据一致性的支持没有想象的那么好,但是MongoDB用户群确实已经够多。MongoDB的亮点不在于它的性能,而是它处理非结构化数据的能力以及内置对分布式的支持(复制、分片达到的高可用、高可伸缩),同时它提供的近似于SQL的查询能力,也是在做NoSQL技术选型时,考虑的一个重要因素。Mo
- spring/hibernate/struts2常见异常总结
白糖_
Hibernate
Spring
①ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
缺少aspectjweaver.jar,该jar包常用于spring aop中
②java.lang.ClassNotFoundException: org.sprin
- jquery easyui表单重置(reset)扩展思路
bozch
formjquery easyuireset
在jquery easyui表单中 尚未提供表单重置的功能,这就需要自己对其进行扩展。
扩展的时候要考虑的控件有:
combo,combobox,combogrid,combotree,datebox,datetimebox
需要对其添加reset方法,reset方法就是把初始化的值赋值给当前的组件,这就需要在组件的初始化时将值保存下来。
在所有的reset方法添加完毕之后,就需要对fo
- 编程之美-烙饼排序
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
/*
*《编程之美》的思路是:搜索+剪枝。有点像是写下棋程序:当前情况下,把所有可能的下一步都做一遍;在这每一遍操作里面,计算出如果按这一步走的话,能不能赢(得出最优结果)。
*《编程之美》上代码有很多错误,且每个变量的含义令人费解。因此我按我的理解写了以下代码:
*/
- Struts1.X 源码分析之ActionForm赋值原理
chenbowen00
struts
struts1在处理请求参数之前,首先会根据配置文件action节点的name属性创建对应的ActionForm。如果配置了name属性,却找不到对应的ActionForm类也不会报错,只是不会处理本次请求的请求参数。
如果找到了对应的ActionForm类,则先判断是否已经存在ActionForm的实例,如果不存在则创建实例,并将其存放在对应的作用域中。作用域由配置文件action节点的s
- [空天防御与经济]在获得充足的外部资源之前,太空投资需有限度
comsci
资源
这里有一个常识性的问题:
地球的资源,人类的资金是有限的,而太空是无限的.....
就算全人类联合起来,要在太空中修建大型空间站,也不一定能够成功,因为资源和资金,技术有客观的限制....
&
- ORACLE临时表—ON COMMIT PRESERVE ROWS
daizj
oracle临时表
ORACLE临时表 转
临时表:像普通表一样,有结构,但是对数据的管理上不一样,临时表存储事务或会话的中间结果集,临时表中保存的数据只对当前
会话可见,所有会话都看不到其他会话的数据,即使其他会话提交了,也看不到。临时表不存在并发行为,因为他们对于当前会话都是独立的。
创建临时表时,ORACLE只创建了表的结构(在数据字典中定义),并没有初始化内存空间,当某一会话使用临时表时,ORALCE会
- 基于Nginx XSendfile+SpringMVC进行文件下载
denger
应用服务器Webnginx网络应用lighttpd
在平常我们实现文件下载通常是通过普通 read-write方式,如下代码所示。
@RequestMapping("/courseware/{id}")
public void download(@PathVariable("id") String courseID, HttpServletResp
- scanf接受char类型的字符
dcj3sjt126com
c
/*
2013年3月11日22:35:54
目的:学习char只接受一个字符
*/
# include <stdio.h>
int main(void)
{
int i;
char ch;
scanf("%d", &i);
printf("i = %d\n", i);
scanf("%
- 学编程的价值
dcj3sjt126com
编程
发一个人会编程, 想想以后可以教儿女, 是多么美好的事啊, 不管儿女将来从事什么样的职业, 教一教, 对他思维的开拓大有帮助
像这位朋友学习:
http://blog.sina.com.cn/s/articlelist_2584320772_0_1.html
VirtualGS教程 (By @林泰前): 几十年的老程序员,资深的