#include#include#includeintcompare(char*a,char*b){chars1[21];chars2[21];sprintf(s1,"%s%s",a,b);sprintf(s2,"%s%s",b,a);returnstrcmp(s1,s2);}voidmaopao(chararr[][20],intn){for(inti=0;i
C语言的运算与表达式
%小农
数据结构
1.赋值运算符与表达式运算符描述实列=把右边操作数的值赋给左边操作数A=B+C将B+C的值赋给A+=把右边操作数加上左边操作数的结果赋值给左边操作数A+=B相当于A=A+B-=把左边操作数减去右边操作数的结果赋值给左边操作数A-=B相当于A=A-B*=把右边操作数乘以左边操作数的结果赋值给左边操作数A*=B相当于A=A*B/=把左边操作数除以右边操作数的结果赋值给左边操作数A/=B相当于A=A/B
26. C语言 #include和#define的区别
涛ing
C语言基础c语言算法开发语言linuxc++visualstudiovscode
本章目录:前言1.头文件包含(`#include`)1.1头文件包含的目的1.2头文件包含的工作机制1.3头文件的应用2.宏替换(`#define`)2.1宏替换的目的2.2宏替换的工作机制2.3宏替换的应用3.头文件包含与宏替换的区别3.1代码组织vs符号替换3.2类型检查vs无类型总结前言在C语言中,头文件包含(#include)和宏替换(#define)是预处理器指令中最常用的两种技术,它们
C语言 ————栈
mc2356
c++c++开发语言c语言算法数据结构
在C++中,栈(Stack)是一种重要的数据结构,栈是一种特殊的线性表,它只能在一端进行插入和删除操作,这一端被称为栈顶(Top),另一端则称为栈底(Bottom)。栈遵循后进先出(LastInFirstOut,LIFO)的原则,就像一摞盘子,最后放上去的盘子会最先被取下来。栈的基础应用场景:函数调用栈:在C++程序中,当函数被调用时,系统会将函数的参数、局部变量等信息压入栈中,函数执行完毕后再将
链表相交问题(双指针法)(java和c语言)
野犬寒鸦
链表c语言算法java
问题描述给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。方法:双指针一种高效的方法是使用两个指针,分别从两个链表的头部开始遍历。当一个指针到达链表末尾时,它切换到另一个链表的头部继续遍历。如果两个链表相交,那么这两个指针一定会在某一点相遇,这个相遇点就是相交的起始节点。实现思路初始化两个指针:分别指向链表A和链表B的头节点。
基于ARM的智能灯光控制系统(1)项目介绍
国产化创客
嵌入式项目Linux应用Linux驱动armhtmlc语言linux驱动网络编程
基于ARM的智能灯光控制系统(1)项目介绍项目实践说明:本实践项目是嵌入式开发培训(阶段2)底层系统开发视频课程的综合实践项目。项目开发使用的技术知识点包括:C语言编程,文件编程,串口编程,网络编程,多线程编程,进程间通信,嵌入式交叉开发,嵌入式Web服务器开发,HTML编程,Linux驱动程序开发。嵌入式开发培训(阶段2)底层系统开发视频地址智能灯光控制系统视频地址系统功能智能灯光系统是对灯光进
C语言中常见的转义字符总结
哎呦,帅小伙哦
C++C++
\b退格,从当前位置退到前一列\f换页符,活跃位置跳到下一页的开端。注:换页符可用于控制打印机换页,但不会导致PC机的显示屏换页。\n换行符,使活跃位置跳到下一行的开端\r回车符,使活跃位置返回当前行的开端\t制表符,使活跃位置移动若干个位置(通常是8个)\0空字符
C51基础知识
promising-w
单片机单片机嵌入式硬件
1.什么是C51?计算机平台——C语言单片机平台——C51计算机平台的CPU主频,内存和硬盘相较于单片机平台都是巨大的量级,另一方面,计算机平台的有不同的操作系统,如Windows,Linux,macOS等,单片机一般是没有操作系统的,(也会有一些简单的操作系统如:RTOS,但与计算机平台的系统相比,还是较为简单的)代码直接运行在芯片上,我们常称为裸机开发,计算机平台的开发叫做基于系统的开发。另外
C语言笔记
次次娅
c语言笔记算法
目录main函数printf函数占位符限定宽度小数位数数据类型变量创建初始化常量字面常量const修饰的常变量(定义常量)#define预处理器(定义常量)字符常量枚举(enum)枚举变量scanf函数基本用法占位符赋值忽略符main函数main函数是程序的⼊⼝,也被叫做:主函数。main前⾯的int表⽰main函数执⾏结束的时候返回⼀个整型类型的值。所以在main函数的最后写return0;正好
C语言动态分配内存的malloc()、calloc()、realloc()三者区别
Future_yzx
c语言java前端
前言malloc()、calloc()、realloc()都是C语言中的动态内存分配函数,它们的作用都是在堆上分配内存,但它们的行为和用途有所不同。下面详细介绍它们的区别。1.malloc()(MemoryAllocation内存分配)malloc()用于分配一块指定大小的内存区域。分配的内存内容是未初始化的,意味着它的内容是随机的(不确定的)。语法:void*malloc(size_tsize)
C语言小任务——1000以内含有9的数字
涅槃寂雨
c语言算法开发语言
步骤第一步:分类含有九的可能的情况:个位有9,十位有9,百位有9,而根据组合数,我们可以得出,一共有7种情况,分别是9##,#9#,##9,99#,9#9,#99,999想要按照这七种情况来找,很明显十分复杂,所以,我们采用另一种方法第一步:求出小于1000的数字的每一位voidgetnum(intnum,int*arr){ inti=0; for(i=0;i#include#includ
C语言基础------练习3
Oracle_666
c语言
输入带空格的字符串,求单词个数__ueooe_eui_sjje__---->3syue__jdjd____die_---->3shuue__dju__kk---->3代码实现结果:代码解析:/*定义字符数组charinput[100];//用于存储输入的字符串定义一个字符数组input用于存储输入的字符串。初始化变量intword_count=0;intin_word=0;//标志位,表示当前是否
C语言条件语句if-else和switch-case练习
Smoke filled ゞ away
c语言算法开发语言
下面的一段程序的输出结果为()#includeintmain(){if(-1)printf("1");elseprintf("2");if(0)printf("3");elseprintf("4");return0;}A.23B.24C.13D.14由于非零即为真,所以选择D选项。()设ints=100,要输出字符串"s的值是100"应使用下列哪个语句?(山东精电电气)A.printf("s的值是
C、C++ 和 C# 编程语言的比较和联系
lisanndesu
c语言c++c#
导语:C、C++和C#是三种不同的编程语言,它们在语法、特性和应用领域等方面有着一些联系和区别。本文将深入探讨这三种语言之间的关系,并比较它们的特点和适用场景,以帮助开发者选择合适的编程语言。1.C、C++和C#简介C:C是一种过程化编程语言,由DennisRitchie在1972年开发。它主要用于系统级编程和性能要求较高的应用程序开发。C++:C++是在C语言基础上扩展而来的语言,由Bjarne
【C语言】预处理详解
星霜旅人
c语言
他们想要逃避工作的压迫,却又被功绩社会深植的价值观绑架。预定义符号1.C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。1__FILE__//进⾏编译的源⽂件2__LINE__//⽂件当前的⾏号3__DATE__//⽂件被编译的⽇期4__TIME__//⽂件被编译的时间5__STDC__//如果编译器遵循ANSIC,其值为1,否则未定义#includeintmain(){
【C++】初学者的浪漫编程指南
星霜旅人
C++c++
少年不惧岁月长,彼方尚有荣光在。前言这是我自己学习C++的第一篇博客总结。后期我会继续把C++学习笔记开源至博客上。C++的兼容性1.C++兼容绝大多数C语言的语法,因此只需要把.c后缀文件改为.cpp即可。2.VS编译器看到是.cpp就会调用C++编译器编译。#define_CRT_SECURE_NO_WARNINGS#includeintmain(){printf("helloworld\n"
C语言程序性能调优:提升执行效率与内存优化的终极指南
大模型铲屎官
C语言从入门到精通c语言开发语言程序性能调优编程内存优化执行效率
系列文章目录01-C语言从零到精通:常用运算符完全指南,掌握算术、逻辑与关系运算02-C语言控制结构全解析:轻松掌握条件语句与循环语句03-C语言函数参数传递深入解析:传值与传地址的区别与应用实例04-C语言数组与字符串操作全解析:从基础到进阶,深入掌握数组和字符串处理技巧05-C语言指针与内存管理:指针使用、内存泄漏与调试技巧06-C语言数据结构深度解析:结构体与联合体的实战应用与技巧07-C语
c语言 指针 pdf,深入理解c指针 PDF扫描版[33MB]
origami dance
c语言指针pdf
深入理解C指针内容简介:深入理解C指针和内存管理,提升编程效率!这是一本实战型图书,通过它,读者可以掌握指针动态操控内存的机制、对数据结构的增强支持,以及访问硬件等技术。本书详细阐述了如何在数组、字符串、结构体和函数中使用指针,同时演示了相应的内存模型及其对指针使用的影响。指针为C语言带来了强大的功能和灵活性,却也是C语言中最难啃的一块“骨头”。本书旨在帮读者透彻理解指针,解决这个老大难问题。不论
C语言:结构体数组
凭君语未可
C语言c语言
结构体数组介绍定义结构体定义结构体数组初始化结构体数组访问和修改结构体数组的元素遍历结构体数组示例高级用法动态分配结构体数组使用`malloc`动态分配使用`calloc`动态分配结构体数组作为函数参数结构体数组与指针多维结构体数组使用`typedef`简化结构体定义结构体数组的常见应用场景结构体数组的排序结构体数组与文件操作写入结构体数组到文件从文件读取结构体数组使用嵌套结构体介绍在C语言中,结
C++——内存管理
kiiila
C++c++
目录1.c++内存分布2.c语言中动态内存管理3.c++动态内存管理4.operatornew和operatordelete函数5.new和delete的实现原理6.定位new表达式(了解)7.malloc/free和new/delete的区别8.什么是内存泄漏,内存泄漏的危害1.c++内存分布内核空间用户代码不能读写栈向下增长内存映射段文件映射、动态库、匿名映射堆向上增长数据段或静态区全局数据、
C语言:函数详解
wai歪why
c语言开发语言
1.函数的概念其实在C语⾔也引⼊函数(function)的概念,有些翻译为:⼦程序,⼦程序这种翻译更加准确⼀些。C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。这段代码是有特殊的写法和调⽤⽅法的。C语⾔的程序其实是由⽆数个⼩的函数组合⽽成的。C语言中我们会见到两类函数:库函数和自定义函数。2.库函数C语⾔标准中规定了C语⾔的各种语法规则,C语言本身是不提供库函数的,但我们写代码时经常会用到重
24. C语言 预处理器:技巧与陷阱
涛ing
C语言基础c语言linuxc++开发语言vscodevim经验分享
本章目录:前言预处理器概述预处理器指令简介常见的预处理器指令实例1.定义宏常量2.引入头文件3.取消宏定义4.条件编译5.调试代码的条件编译预定义宏示例:使用预定义宏宏运算符1.宏延续运算符(`\`)2.字符串化运算符(`#`)3.标记粘贴运算符(`##`)4.`defined()`运算符宏与函数的区别错误的宏使用正确的宏使用总结前言在C语言的编程过程中,预处理器(Preprocessor,简称C
华为OD机试2024年E卷-分苹果[100分]( Java | Python3 | C++ | C语言 | JsNode | Go )实现100%通过率
梅花C
华为OD题库华为od
题目描述A、B两个人把苹果分为两堆,A希望按照他的计算规则等分苹果Q,他的计算规则是按照二进制加法计算,并且不计算进位12+5=9(1100+0101=9),B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多。输入苹果的数量和每个苹果重量,输出满足A的情况下B获取的苹果总重量。如果无法满足A的要求,输出-1。数据范围1<=总苹果数量<=200001<=每个苹果重量<=1
高阶C语言|数组名的深度解析(数组名结合sizeof与strlen的详解)
我想吃余
C语言篇c语言开发语言
欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习!点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对C语言感兴趣的朋友!文章目录前言正文开始~1.`sizeof(数组名)`:计算整个数组的大小2.`&数组名`:取整个数组的地址3.数组名作为首元素地址的指针4.一维数组的深度解析5.字符数组的解析6.字符串数组的特别处理7.指针变量与字符串的关系8.二
浅谈Linux C基础9----数据链表
Oracle_666
linuxc语言运维
前言:基于C语言实现数据链表1.实现代码函数:#include"loop_list.h"//创建单向循环链表node_pcreate_loop(){node_pH=(node_p)malloc(sizeof(node));if(H==NULL){printf("空间申请失败\n");returnNULL;}H->data=0;//链表中暂无数据H->next=H;//单向循环链表,尾结点指向头结点
c语言从入门到精通第四版电子书_C语言从入门到精通————8.数组
James Swineson
c语言从入门到精通第四版电子书
前言当我们有非常多的变量值需要进行存储时,我们就会接触到“数组”这个概念,他可以使用一条C语言语句来申请若干个存储空间来存储若干变量。数组(1)数组是一组有序数据的集合。数组中各数据的排列是有一定的规律的,下标代表数据在数组中的序号。(2)用一个数组名和下标来唯一确定数组中的元素,如a3就代表第3个元素的值。(3)数组中的每一个元素都属于同一数据类型。不可以把不同类型的数据放在同一个数组中。数组的
C语言从入门到精通 - 学习资源
颜栩原
C语言从入门到精通-学习资源【下载地址】C语言从入门到精通-学习资源C语言从入门到精通-学习资源欢迎来到《C语言从入门到精通》的学习资源页面项目地址:https://gitcode.com/open-source-toolkit/a3eac欢迎来到《C语言从入门到精通》的学习资源页面。这本书是专为那些渴望深入理解并掌握C语言的初学者以及进阶者所准备的宝贵资料。通过本书,你将能够系统地学习C语言的基
c语言数组详解
keep intensify
c语言开发语言
前言一、数组的定义:二、数组的初始化:1.如何给数组赋初值:1.1逐个赋值:1.2使用花括号初始化:1.3使用等号赋值:2.不同的初始化方式2.1使用循环初始化:2.2使用默认初始化:三、数组的访问:1.如何通过下标访问数组元素四、多维数组:1、声明多维数组2、访问多维数组总结前言今天我们来了解一下c语言数组方面的内容一、数组的定义:数组是一种用于存储多个相同类型的数据的数据结构。数组在内存中是连
ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
[Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
[转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http