文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。
函数原型:
void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );
用法以及参数说明:
Sorts the num elements of the array pointed by base, each element size bytes long, using the comparator function to determine the order.
The sorting algorithm used by this function compares pairs of values by calling the specified comparator function with two pointers to elements of the array.
The function does not return any value, but modifies the content of the array pointed by base reordering its elements to the newly sorted order.
base Pointer to the first element of the array to be sorted.(数组起始地址)
num Number of elements in the array pointed by base.(数组元素个数)
size Size in bytes of each element in the array.(每一个元素的大小)
comparator Function that compares two elements.(函数指针,指向比较函数)
1、The function must accept two parameters that are pointers to elements, type-casted as void*. These parameters should be cast back to some data type and be compared.
2、The return value of this function should represent whether elem1 is considered less than, equal to, or greater than elem2 by returning, respectively, a negative value, zero or a positive value.
Return Value none (无返回值)
阅读全文...
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
Description
Gray code is an interesting code sequence and has many applications in computer science. No matter you have known it before or not, here are some introductions about its features:
(1) Gray code has 2^n unique elements;
(2) Each element contains n digits of 0 or 1;
(3) Each pair of adjacent elements has exactly one different digit.
For example, when n=2, one of the gray code sequence is: 00,01,11,10.
Now, the task is quite simple, given a positive integer n, generate the corresponding Gray code sequence.
Input
Input may contain multiple test cases. Each test case consists of one positive integer n(n<=16), Input is terminated by a case with n=0, which should not be processed.
Output
For each test case, output the corresponding Gray code sequence, one element per line. There may be multiple answers, any of them will be accepted. Please output a blank line after each test case.
Tips:注释很重要,很久以前的程序不加注释很容易看不懂...
输出N位前2^N个格雷码,因为每次只改变相邻的一个数,可以使用深度优先搜索,每次改变节点就好了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| #include <stdio.h>
#include <stdlib.h>
int n;
char s[17];
void dfs(int i)
{
if(i==n) printf("%s\n",s); //到达底部就输出
else
{
dfs(i+1); //深度优先搜索
if(s[i]=='0') s[i]='1';
else s[i]='0'; //把当前位逆转
dfs(i+1); //继续向下搜索
}
}
int main()
{
int i;
while(1)
{
scanf("%d",&n);
if(!n) break;
for(i=0;i<17;i++) s[i]='0';
s[n]='\0';
dfs(0);
printf("\n");
}
system("pause");
return 0;
} |
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
这个学期快结束了,C语言课也就该结束了,我也就不玩了...
C++是重点,所以提前把书买好吧。没选的,还是经典的《C++ Primer Plus 》,虽然原版书是最好的,可是俺现在的英文水平估计看不懂...所以还是看中文版好了。
以前买书选淘宝,这次选卓越。以前还以为卓越的书要运费,昨天宿友告诉我卓越是免运费的...我无语,居然不要运费,那当然选卓越了...
这次一下买了3本,有2个宿友也要,呵呵,估计到时候那个包裹会很沉...书的封面是深蓝色的,我喜欢,show一下...

【原 书 名】 C++ Primer Plus (5th Edition)
【原出版社】 SAMS
【作 者】(美)Stephen Prata
【译 者】 孙建春 韦强
【出 版 社】 人民邮电出版社
【书 号】 7115134162
【出版日期】 2005 年5月
【页 码】 788
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
校内网是个不错的地方,虽然我不玩校内,不过也在上面找到了以前的很多同学。
唯一不爽的就是每次一打开校内网进入"新鲜事"那里就会有N多"分享"和"投票"...想看看同学的状态还得一个个筛选,现在稍微好一点,可以直接选择状态看,不过对于我这种"懒仙"级别的人来说,这简直太累了...
一怒之下,我把校内网里所有的按钮都按了一次,终于找到了彻底屏蔽分享和投票的办法...
首先找到进入校内网看到的这个边栏,最下面有一个"设置",点击进入(如果以后改版了,方法也不便,就是进入应用设置)。

进入之后你会看到相关的栏目,点击"分享"后面的"设置",弹出对话框:

把那个"看到好友的新鲜事"前面的勾去掉,然后"保存修改",这样就搞定了!以后再也看不到那些烦人的"分享"了...
"投票"使用同样的方法处理,世界终于清净了...
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
12月21日,“刘墉——教你活出闪亮人生”讲座,在北京师范大学珠海分校励耘楼A111大教室举行。
我也去了,不过我没想着去坐哈,因为要座位就得早早去排队,我没那个耐心,而且我也不是刘墉狂热分子...所以我是6:30去的,那时队伍早已经排得很长很长了,而且A111里面也是人满为患,好不容易才找地方站下,嘿嘿。
“ 热狗冷猫.”这是刘墉对自己的评价。他用风趣的语言向大家介绍了一个独具个性的他。他说,每个动物都在进化,而人也应该进化,在自己年轻的时候多读些书,对脑进行全面开发。
不过就我感觉,刘墉的讲座没有俞敏洪的好,感觉他讲的太空洞了...
讲座后面基本上就已经成为卖书环节了...直接无视...


文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
今天是全国大学英语四、六级考试的日子,无数大学生为其“抛头颅、洒热血”......
早晨打开电脑,联网,弹出了一个窗口:
接上级紧急通知: 今日9:00-11:30网络进行调整,中断所有网络服务,敬请谅解!
中午再次打开电脑,联网,又弹出一个窗口:
接上级紧急通知: 今日14:30-17:00网络进行调整,中断所有网络服务,敬请谅解!
学校为了CET-4和CET-6真是狠啊...
没辙,不让上网咱就看电影吧,Eagle Eye。

故事很老套,一个刚参加完哥哥葬礼的潦倒男人和一个刚送走孩子去上学的单身女子,分别接到了一个陌生手机,正由于男的经济上贫乏和女的在儿子上母爱的把柄落入了这通手机的控制之中,因此受控于此,参加一场场惊险的夺命之旅。而警方因为男主角哥哥的恐怖分子的身份将这次行动敏感地定义成反恐行动。
影片剧情走向的关键因素便是那支手机,影片中展示的许多电子媒介也成为重要道具。当男女主角在经过手机里下达的一个个命令并惊险完成后来到了手机提示的一个密室,四面墙上都是一个个液晶屏幕,里面播放着两人完整的生活资料,他们完全被这些放映着影像的电子媒介所控制并被威胁着,在这些影像面前他们呈现一种赤裸裸的精神状态。我想,电子媒介在充斥着我们生活,为我们生活服务的同时,很可能就将我们牢牢绑住并且从接受命令转化成向我们发布命令的统治者。
影片最令我震撼的片段就是主控电脑监听五角大楼底下密室里的对话,电脑居然利用水杯里的水震动产生的声波来传递人的对话。这虽然有科幻的成分在,但随着科技的发展,谁知到哪一天这会不会变成现实呢?到那个时候,人类还有隐私存在吗?
电影是接近现实的梦,那现实是否就是电影里反映的那样的呢?我想是的。我在大学宿舍里就深刻地体会到这一点。一些舍友沉迷于电脑的网络游戏,而对于真实的外界世界置之不理,体现在不理会游戏之外的各种信息包括学习的、生活的、就业的,忽视与其他人的正常人际交往。基本上放弃了外部世界,因为游戏的虚拟世界让他们有恃无恐甚至趾高气扬。我想,人与人的交往即使就像鹰眼里的男女主角在各种地点的那些接待他们进入下一个惊险任务的人表现出文明礼仪的外表下内心潜藏巨大阴谋一样令人可怕,也不应该逃避,因为人是离不开社会的。
电影和现实都在提醒我们:随着人工智能的发展,在对人类恐怖分子进行反恐的同时,也要提高对电子媒介的反恐意识。
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
今天星期五,没课。大早晨就跑去图书馆三层自习室,打算自习一天。可是到了那里才发现即使我来得如此之早,90%的桌子还是被厚厚的书霸占了,剩下的10%是我没法判定的,因为已经有人坐了...
在我正感叹于师大学子的勤奋以至于这么早来占座之时,我的手很自然地划过桌子上的一摞书,结果却是...最上面那本书的封皮留下了一道清晰的痕迹...是灰尘。
纵观自习室的桌子,很多都是如此。本以为自习室到了晚上应该清空的,可现在得出的结论却是一经占座,便可永久拥有,谁知到书的主人此时尚在人间否?
自习室被霸占一空,我只能无奈地去图书借阅室自习,可是恰逢今天星期五,图书馆11:30以后闭馆...
吃过饭回到宿舍,正好同学电脑出了点问题,要出去解决。于是我和我的小黑便去了楼下的SIGMA。
传说中提供WIFI服务的SIGMA(餐厅?)果然所言非虚,很顺利地便成功接入。

看了一下IP,是北师大的,看起来这个WIFI也是接入校园网的。访问了一下内网资源,成功,结论成立。只是速度比宿舍慢了一些,信号也不是特别稳定,平均每小时要中断一次。
朋友的电脑一开始怎么也连接不上,后来发现是DHCP Client服务没有开启,无法成功分配IP,开启服务后成功。我们在校内都是固定IP,因此不少人把DHCP Client服务关闭了,这里提一下,以后遇到此类问题就知道了。
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
Description
有N个正整数,它们的最小公倍数是多少?
Input
数据包含两行,第一行是一个整数N (1<=N<=10),第二行包含n个不超过10^9正整数。
Output
输出N个数的最小公倍数。
Tips:想了一下午才想到一个“相对比较高效”的算法,核心还是这个公式:两数乘积=两数最大公约数*两数最小公倍数。
只不过这次用到的是 两数最小公倍数=两数乘积/两数最大公约数。每两个数个一组依次向后求就可以了,嘿嘿~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <stdio.h>
int slyar(int x,int y) //计算两个数的最大公约数
{
while(x>y?(x%=y):(y%=x));
return x+y;
}
int main()
{
int i,n,a[100],sum;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
sum=a[0];
for(i=1;i<n;i++) sum=sum*(a[i]/slyar(a[i],sum));
printf("%d\n",sum);
return 0;
} |
最新评论