| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1170 人关注过本帖
标题:自己写的约瑟夫程序,出了点问题
取消只看楼主 加入收藏
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
收藏
 问题点数:0 回复次数:4 
自己写的约瑟夫程序,出了点问题

#include<stdio.h>
#include<malloc.h>
#include<conio.h>

typedef struct node{
char name; //链表中数据项为成员名字
struct node *next;
}LinkList;
//数据结点

typedef struct{
int length;
struct node *next;
}Tnode;
//头结点
Tnode *head=NULL;

Tnode *CreatList()
{//头插法建立链表
Tnode *head;
LinkList *p;
unsigned char fg;
head=(Tnode *)malloc(sizeof(Tnode));
head->next=NULL;
head->length=0;
printf("请输入参加的成员的名单:并以@结束!\n");
scanf("%c",&fg);
while(fg!='@')
{
p=(LinkList *)malloc(sizeof(LinkList));
head->length++; //头结点中存储链表中的数据结点数目
p->name=fg;
p->next=head->next;
head->next=p;
scanf("%c",&fg);
}
if(fg=='@') printf("成员输入结束!\n");
return head;
}

int EmptyList(Tnode *head)
{//判断链表是否为空表是就返回1,不是则返回0
if(head->length==0)
return 1;
else return 0;
}

LinkList *LocateList(Tnode *head,int number)
{//返回number-1号结点的地址,number大于1
LinkList *p=head->next;
int i=1;
while(i<(number-1))
{
p=p->next;
i++;
}
return p;
}

void DeleteList(Tnode *head,int number)
{//删除序号为number号的结点
LinkList *p,*q;
if(number<0||number>head->length)
{
printf("number输入有误!");

return;
}
if(number==1)
{
q=head->next;
head->next=head->next->next;
head->length=head->length-1;
printf("%c ",q->name); //打印出被删除的结点中的数据项
free(q);
}
else
{
p=LocateList(head,number);
q=p->next;
p->next=q->next;
head->length=head->length-1;
printf("%c ",q->name);
free(q);
}
}


void FunList(Tnode *head,int n)
{//报到n的人出列 //约瑟夫
int number=0;
int j=0;
int count=0;
do{
count++;
j++;
if(count==n)
{
count=0;
number=j%(head->length);
j=j-1;
DeleteList(head,number);
}
}while(!EmptyList(head));
}


void main()
{
int tag;
CreatList();
printf("请输入几号出列:\n");
scanf("%d",&tag);
FunList(head,tag);
getch();
}

Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
First-chance exception in Cpp1.exe: 0xC0000005: Access Violation.

这是错误代码,并且还打了个箭头指向 if(head->length==0) 这句!
不知道出现了什么问题

[此贴子已经被作者于2007-9-30 22:31:57编辑过]

搜索更多相关主题的帖子: 约瑟夫 
2007-09-30 13:05
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
收藏
得分:0 

楼上版主帮忙找下问题,谢谢!


执著的信念,坚定的自信,勤奋的努力才是通向成功的捷径! !!
2007-10-06 15:25
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
收藏
得分:0 

两个结构体没关系吧!
好象算法错了,不用循环链表好象做不起来...


执著的信念,坚定的自信,勤奋的努力才是通向成功的捷径! !!
2007-10-09 20:15
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
收藏
得分:0 
版主,可以要下你的QQ吗?本人在自学数据结构,那样的话,有问题可以直接问你!给我邮箱也行,不方便说的话可以发QQ或者油箱地址到chenhuming@yahoo.com.cn,希望能够满足我这个奢侈的要求!

执著的信念,坚定的自信,勤奋的努力才是通向成功的捷径! !!
2007-10-09 20:20
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
收藏
得分:0 

不管怎么样,还是谢谢你了!
总算有人回下!呵呵


执著的信念,坚定的自信,勤奋的努力才是通向成功的捷径! !!
2007-10-12 20:09
快速回复:自己写的约瑟夫程序,出了点问题
数据加载中...
 
   



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

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