| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:不好意思,问一下,......
取消只看楼主 加入收藏
欧罗
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-18
收藏
 问题点数:0 回复次数:2 
不好意思,问一下,......

各位大虾,在写程序时,为什么总喜欢将原函数写出来,是不是有点多此一举

2006-05-18 15:55
欧罗
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-18
收藏
得分:0 

就像下面这些代码一样,它出现的原函数不是系统函数:
#include <stdio.h>
#include <stdlib.h>
#define LISTSIZE 10
#define INCREMENT 10

typedef struct
{
int *elem;
int length;
int listsize;
}SqList;

static void InitialList(SqList *L);/*
static void CreateList(SqList *L);
static void DeleteElem(SqList *L); 这些是原函数吗?
static void VisitList(SqList L);
static void DestroyList(SqList *L);*/

int main(void)
{
SqList L;

InitialList(&L); /* 顺序表初始化*/

CreateList(&L); /* 创建顺序表 */

VisitList(L); /* 打印创建后的顺序表 */

DeleteElem(&L); /* 删除顺序表中的相同元素 */

VisitList(L); /* 打印删除后的顺序表 */

DestroyList(&L); /* 销毁顺序表 */

return 0;
}

static void InitialList(SqList *L)
{
if ((((*L).elem = (int*)malloc(sizeof(int) * LISTSIZE))) == NULL)
{
exit(1);
}
(*L).length = 0;
(*L).listsize = LISTSIZE;
}

static void CreateList(SqList *L)
{
int n, i;

printf("Enter elemenet number n: ");
scanf("%d", &n);

for (i = 0; i < n; i++)
{
scanf("%d", &(*L).elem[(*L).length++]);

if ((*L).length >= (*L).listsize)
{
if ((((*L).elem = (int*)realloc((*L).elem, sizeof(int) * ((*L).listsize + INCREMENT)))) == NULL)
{
exit(1);
}
}
}
}

static void DeleteElem(SqList *L)
{
int i, j, *p, *q;

for (i = 0; i < (*L).length - 1; i++)
{
for (j = i + 1; j < (*L).length; j++)
{
if ((*L).elem[i] == (*L).elem[j])
{
p = &(*L).elem[j];
for (q = p + 1; q < &(*L).elem[(*L).length]; q++)
{
*(q - 1) = *q;
}
(*L).length--;
}
}
}
}

static void VisitList(SqList L)
{
int i;

for (i = 0; i < L.length; i++)
{
printf("%d ", L.elem[i]);
}
printf("\n");
}

static void DestroyList(SqList *L)
{
if ((*L).elem != NULL)
{
free((*L).elem);
(*L).elem = NULL;
}
(*L).length = 0;
}
不好意思,有点菜,很都东西不是很清楚.


2006-05-19 20:06
欧罗
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-18
收藏
得分:0 

ok,多谢指点!


2006-05-22 15:39
快速回复:不好意思,问一下,......
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012172 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved