| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 489 人关注过本帖
标题:帮忙修补下程序。。【出列问题】
取消只看楼主 加入收藏
dtczhl
Rank: 1
来 自:浙/杭
等 级:新手上路
帖 子:533
专家分:0
注 册:2008-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:0 
帮忙修补下程序。。【出列问题】
题7. 出列问题
[基本要求]
有1至 N编号的N 个人按顺时针方向围坐一圈,每人持有一个密码(正整数),一开始以正整数m作为报数上限值,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的报数上限值,从他的顺时针方向上的下一个人开始重新报数,如此下去,直至所有的人全部出列为止,要求产生记录出列顺序的表。如N = 7,每个人的密码依次是:3,1,7,2,4,8,4,m的值为20,则出列顺序为6,1,4,7,2,3,5。所有人用一个循环单链表表示,表中每个结点代表一个人,按出列次序依次将结点从循环单链表中删除,并按顺序存放在一个单链表中,链表的每个结点包括三个字段:code代表密码,no代表人的编号,link是指向下一个结点的指针。在主函数中,用堆分配的方法建立对象。循环展开对问题的求解。

帮我修补下(帮我创建个delete函数模板)。语言风格和书写水平如下吧。。我大一。。只能看懂基础的表达。。还有麻烦检查下下面的程序(有错改改,还有要根据题意)。。知道要求很高。。。。拜托了
#include<stdio.h>
#include<stdlib.h>
struct student
{
int code;int no; struct node *next;
};
void main()
{
void create(student *head,int n);
void delete(student *head,int m);
struct student *head;
int n;int m;
printf("输入人数n和报数上限值m:\n");
scanf("%d%d",&n,&m);
head=(student *)malloc(sizeof(struct student));
creat(head,n);
delete(head,m);
free(head);
}
void create(student *head,int n)
{
sutdent rear,p;
int i;
head==NULL;
if(n>0)
{
for(i=1;i<=n;i++)
{
p=(struct student *)malloc(sizeof(struct student));
p->code=i;
printf("请输入第%d个密码:",p->code);
scanf("%d",&(p->no));
if(i==1)
{
head=p;rear=p;
}
else
{
rear->next=p;
rear=p;
}
}
rear->next=head;
}
}
搜索更多相关主题的帖子: 出列 修补 
2008-09-07 21:35
快速回复:帮忙修补下程序。。【出列问题】
数据加载中...
 
   



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

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