页面伪装异步加载中...
关闭/显示侧边栏
返回首页 mail me! 订阅rss Follow me

Archive for 六月, 2009

给一个C语言数组排序

这是上次帮226的人做专周的一个子函数,里面有个排序的函数,自认为对于入门还不错。

因为这是一个程序管理系统,这个排序是用来排名次的一个小功能,只是其中的一个子函数,故在这里先说下函数前提。

首先是数据,数据是写到一个文件中的,输出大概就是这么个形式。

 数据结构图

然后将这个数据赋值到一个 float score[10][8] 的数组中。

在main() 函数中:

   首先赋值   int   n=10; //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
34
35
36
37
38
39
40
41
42
void fun3(float score[][8],int n)    //排序函数
{
	int i,j,k;
	float temp[10][3],x[3];        //定义了一个临时二维数组和一个一维数组
	for (i=0;i<n;i++)
	{
		temp[i][0]=score[i][0];    //将学号赋给临时二维数组的0列
		temp[i][1]=score[i][6];    //将总分赋给临时二维数组的1列
	}
	for (i=0;i<n;i++)              /*条件也可为:i<n-1*/
	{
		k=i;
		for (j=i+1;j<n;j++)
			if (temp[j][1]>temp[k][1])
				k=j;
			if (i!=k)                /*此语句不要也可*/
			{
				x[0]=temp[k][0];     //以下就是交换学号和总分
				x[1]=temp[k][1];
				x[2]=temp[k][2];     /*些语句不要也可*/
				temp[k][0]=temp[i][0];
				temp[k][1]=temp[i][1];
				temp[k][2]=temp[i][2];
				temp[i][0]=x[0];
				temp[i][1]=x[1];
				temp[i][2]=x[2];    /*些语句不要也可*/
			}
	}
	j=1;
	temp[0][2]=j;
	for (i=1;i<n;i++)
		if (temp[i][1]==temp[i-1][1])
			temp[i][2]=j;
		else
		{
			j++;temp[i][2]=j;
		}
	printf("按总分排列的名次\n");
	printf("原学号    总分    名次\n");
	for (i=0;i<n;i++)
		printf("%4g%10g%7g\n",temp[i][0],temp[i][1],temp[i][2]);
}

嗯,排序函数就是这样,数组的排序,有很多种方式,这只是一种。

考完一科

今天考完了期末最后的几科中的第一科,毛概。

据说,挂的人比较多。

无所谓了,反正我也是上了毛概老师的黑名单的。

累的很。

关于本博客撤销部分友情链接的告示

昨天本博客撤销了部分友情链接,原因如下:

1.超过两月长期不更新。

2.原博客地址跳转至第三方网站。

3.被空间服务商关闭空间的博客。

4.纯利益性博客。

5.撤掉本站链接。

如果之前有和我交换链接的朋友被我误删掉的请与我联系,在次表示深深抱歉,若是因为以上原因,那请审视自己站点。

附:本站友情链接申请地址:http://yixi.info/index.php/lianjie

生活很杂碎。

今天遇到同学,和她聊了很久,聊了一些补习的事。

原来我还不知道,看似平静的班级,却是暗涌流动,感情的牵牵扯扯,还有不同的人心。

不曾了解,那个时候的我就低着头用手机看小说,不曾关心身边的事。

而当前,即使才大学的第一年,说的最多的问题却是未来。

未来怎样,很是迷茫。

眨眼间,马上就大二了,大学的日子就去了三分之一,论收获,却惘然。

我还是仍然在坚持,破碎的梦想。

 

P.S.很久没用这样的文字,支离破碎。

给个PHP分页函式。

今天比较累,就不做过多的说明了。函式在下面。
先给个简短的说明吧:
/*
#### 检索分页函式 ####
Int $HALT – 检索结果仅分1页时是否(1/0)显示页码条
Int $LRLIST – (页码条显示页码数-1)/2
Int $ECHOCNT – 检索时每页显示记录的数量
Int $paper – 页数,预提取:$paper=$HTTP_GET_VARS[paper];
Varchar $table – 数据表名,预附值:$table=”db.table”;
Varchar $where – 检索条件,预附值:$where=”where field=’value’”;

Varchar $enwhere – 将原$where进行两次base64_encode()编码后以GET的方式提交
Varchar $splitstr – 页码条输出字串,执行函式后在相应的位置执行 echo $splitstr;

函式调用前需获取变量 –
$paper=$HTTP_GET_VARS[paper];
$sumcnt=$HTTP_GET_VARS[sumcnt];
$enwhere=$HTTP_GET_VARS[enwhere];

Return (Varchar $where) – 分页后检索语句的检索条件
注意:本函式需调用出错处理函式 nerror($error);
*/

<?

function splitlist($HALT,$LRLIST,$ECHOCNT,$paper,$table,$where,$page_id,$userid){
global $splitstr,$sumcnt;
if($paper=="" || $sumcnt==""){
$query = "select count(*) as num from $table $where";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$sumcnt=$row["num"];
if($sumcnt==0){
nerror("该版内还没有选择发布新闻 !");
}
$paper=1;
}
$sumpaper=($sumcnt-$sumcnt%$ECHOCNT)/$ECHOCNT;
if(($sumcnt%$ECHOCNT)!=0) $sumpaper+=1;
if($sumpaper==1 &amp;&amp; $HALT==0) return($where);
$enwhere=base64_encode(base64_encode($where));
if(($LRLIST*2+1) < $sumpaper){
if(($paper-$LRLIST) < 2){
$tract=1;
$sub=$LRLIST*2+1;
}else if(($paper+$LRLIST) >= $sumpaper){
$tract=$sumpaper-($LRLIST*2);
$sub=$sumpaper;
}else{
$tract=$paper-$LRLIST;
$sub=$paper+$LRLIST;
}
}else{
$tract=1;
$sub=$sumpaper;
}
$uppaper=$paper-1;
$downpaper=$paper+1;
$startcnt=($paper-1)*$ECHOCNT;
$where.=" limit ${ startcnt },${ ECHOCNT }";
if($tract > 1) { $splitstr="【 << "; }
else $splitstr="【 << ";
for($i=$tract;$i<=$sub;$i++){
if ($i!=$paper) $splitstr.="".$i." ";
else $splitstr.="".$i." ";
}
if ($sub!=$sumpaper) $splitstr.=">> 】";
else $splitstr.=">> 】";
return($where);
}
?>
Page 1 of 41234