| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 713 人关注过本帖
标题:挑错误!!
只看楼主 加入收藏
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
 问题点数:0 回复次数:7 
挑错误!!
谁能帮俺挑挑错!

#include <stdio.h>

#include <malloc.h>

#define LISTSIZE 10

typedef struct

{

char *elem;

int length;

int listsize;

}SqList;

static void InitList_Sq(SqList *L);

static void ListInsert_Sq(SqList *L, int n);

static void ListMerge_Sq(SqList *L1, SqList *L2, SqList *L3);

static void DestroyList_Sq(SqList *L);

static void Print(SqList *L);

int main(void)

{

SqList L1, L2, L3;

InitList_Sq(&L1);

ListInsert_Sq(&L1, LISTSIZE);

Print(&L1);

InitList_Sq(&L2);

ListInsert_Sq(&L2, LISTSIZE);

Print(&L2);

ListMerge_Sq(&L1, &L2, &L3);

Destroy_Sq(&L1);

Destroy_Sq(&L2);

print(&L3);

return 0;

}

static void InitList_Sq(SqList *L)

{

(*L).elem = (char*)malloc(LISTSIZE * sizeof(char));

if (!(*L).elem) exit(1);

(*L).length = 0;

(*L).listsize = LISTSIZE;

}

static void ListInsert_Sq(SqList *L, int n)

{

int i;

for (i = 0; i < n; i++)

{

Printf("Enter the char:\n");

scanf("%c",&((*L).elem[i]));

}

}

static void ListMerge_Sq(SqList *L1, SqList *L2, SqList *L3)

{

int i = 0, j = 0;

(*L3).elem = (char*)molloc(2 * LISTSIZE * sizeof(char));

if (!(*L3).elem) exit(1);

while (i < (*L1).listsize)

(*L3).elem[i++] = (*L1).elem[i++];

i = i-1;

while (j < (*L2).listsize)

(*L3).elem[i++] = (*L3).elem[j++];

}

static void DestroyList_Sq(SqList *L)

{

if ((*L).elem == NULL) exit(1);

free((*L).elem);

(*L).elem = NULL;

}

static void Print(SqList *L)

{

int i=0;

while (i < (*L).listsize)

{

printf("%d ",(*L).elem[i++]);

}

printf("\n");

}

搜索更多相关主题的帖子: face 宋体 int include 
2006-05-18 10:24
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 

这写的是什么啊,一塌糊涂啊,该好了,但也是错误的,你的方法有问题,下面的虽然能正确运行,但也是错误,正常不是这个样子的


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define LISTSIZE 10

typedef struct
{

char *elem;
int length;
int listsize;
}SqList;


static void InitList_Sq(SqList *L);
static void ListInsert_Sq(SqList *L, int n);
static void ListMerge_Sq(SqList *L1, SqList *L2, SqList *L3);
static void Destroy_Sq(SqList *L);
static void Print(SqList *L);


int main(void)

{

SqList L1, L2, L3;


InitList_Sq(&L1);

ListInsert_Sq(&L1, LISTSIZE);

Print(&L1);

InitList_Sq(&L2);

ListInsert_Sq(&L2, LISTSIZE);

Print(&L2);

ListMerge_Sq(&L1, &L2, &L3);

Print(&L3);

Destroy_Sq(&L1);

Destroy_Sq(&L2);

Destroy_Sq(&L3);

getch();
return 0;
}


static void InitList_Sq(SqList *L)
{

(*L).elem = (char*)malloc(LISTSIZE * sizeof(char));

if (!(*L).elem) exit(1);


(*L).length = 0;

(*L).listsize = LISTSIZE;


}


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

printf("Enter character: ");
fflush(stdin);
for (i = 0; i < n; i++)
{
scanf("%c",&((*L).elem[i]));
}
}


static void ListMerge_Sq(SqList *L1, SqList *L2, SqList *L3)
{
int i = 0, j = 0;

(*L3).elem = (char*)malloc(2 * LISTSIZE * sizeof(char));

if (!(*L3).elem) exit(1);

(*L3).listsize = (*L1).listsize + (*L2).listsize;

while (i < (*L1).listsize)
{
(*L3).elem[i] = (*L1).elem[i];
i++;
}
i--;

while (j < (*L2).listsize)

(*L3).elem[i++] = (*L2).elem[j++];

}


static void Destroy_Sq(SqList *L)

{

if ((*L).elem == NULL) exit(1);


free((*L).elem);


(*L).elem = NULL;

}


static void Print(SqList *L)

{

int i=0;


while (i < (*L).listsize)

{

printf("%c",(*L).elem[i++]);

}


printf("\n");

}




日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-18 11:08
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 


hehe 刚学!!
学习中!
能帮着把错误的算法给改改吗!??


奋斗改变一切!!
2006-05-18 13:42
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 
又一个

程序能运行,但算法有错误!!
怎么也得不了正确结果, 我感觉void ListInsert2(Sqlist *L) 有错误!!
调了好长时间还是不行,帮帮忙!

#include <stdio.h>
#include <malloc.h>
#define LISTSIZE 10

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

void InitList(SqList *L);
void DestroyList(SqList *L);
int ListEmpty(SqList *L);
int ListLength(SqList *L);
int GetElem(SqList *L, int i, int *e);
void ListInsert(SqList *L, int n);
void ListInsert2(SqList *L, int i, int e);
int ListDelete(SqList *L, int i, int *e);
void Print(SqList *L);

int main(void)
{
int k, length, e1, e2, z;

SqList L;

InitList(&L);
ListInsert(&L, LISTSIZE - 1);
Print(&L);
ListInsert2(&L, 2, 20);
Print(&L);

z = ListDelete(&L, 3, &e1);
k = GetElem(&L, 4, &e2);
Print(&L);
length = ListLength(&L);

printf("z = %d\n",z);
printf("k = %d\n",k);
printf("length = %d\n",length);
Print(&L);

ListInsert2(&L, 2, 4);
Print(&L);

length = ListLength(&L);
printf("length = %d\n",length);

return 0;
}

void InitList(SqList *L)
{
(*L).elem = (int*)malloc(LISTSIZE * sizeof(int));
if (!(*L).elem) exit(1);

(*L).length = 0;
(*L).listsize = LISTSIZE;
}

void DestroyList(SqList *L)
{
if ((*L).elem == NULL) exit(1);

free((*L).elem);

(*L).elem = NULL;
}


int ListEmpty(SqList *L)
{
if ((*L).elem == NULL) exit(1);
if ((*L).length == 0) return 0;
else return 1;
}

int ListLength(SqList *L)
{
if ((*L).elem == NULL) exit(1);
return (*L).length;
}

int GetElem(SqList *L, int i, int *e)
{
if ((*L).elem == NULL) exit(1);
if (i<1 || i>((*L).length + 1)) return -1;
e = &(*L).elem[i];
return *e;
}

void ListInsert(SqList *L, int n)
{
int i;
if ((*L).elem == NULL) exit(1);

for (i = 0; i < n; i++)
{
printf("Enter one number:\n");
scanf("%d",&(*L).elem[i]);

++(*L).length;
}
}

void ListInsert2(SqList *L, int i, int e)
{
int *p,j,*q;

if ((*L).elem == NULL) exit(1);
if (i<1 || i>((*L).length + 1)) exit(1);


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

*q = e;
}

int ListDelete(SqList *L, int i, int *e)
{
int *p;
int j;
if ((*L).elem == NULL) exit(1);
if (i<1 || i>((*L).length +1)) exit(1);

*e = (*L).elem[i];
p = &(*L).elem[i];

for (j = i+1; j <((*L).length - 1); ++j)
{
*(p - 1) = *p;
}
--(*L).length;
return *e;
}

void Print(SqList *L)
{
int i;

if ((*L).elem == NULL) exit(1);

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

printf("\n");
}


奋斗改变一切!!
2006-05-18 13:45
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 


刚才没看到,谢谢 论坛!


奋斗改变一切!!
2006-05-18 13:55
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 
麻烦论坛大哥写个正常的,学习一下!

奋斗改变一切!!
2006-05-18 13:58
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
你要写什么样的啊,把要求说下,要不然写出来不是你要的不浪费了,

具体的功能,输入结束标志等,数据类型

我自己写程序的结束标志全部是EOF, 你用什么,回车吗

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-18 14:32
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
收藏
得分:0 
第二个程序我已经在C那给你看了
http://www.bc-cn.net/bbs/dispbbs.asp?boardid=5&id=65257&star=1#141734
你再去看看吧

明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-05-18 16:37
快速回复:挑错误!!
数据加载中...
 
   



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

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