| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 849 人关注过本帖
标题:本人闲暇时间编的一个求解约瑟夫环的程序
取消只看楼主 加入收藏
编程游侠
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-4-13
收藏
 问题点数:0 回复次数:2 
本人闲暇时间编的一个求解约瑟夫环的程序
本人闲暇时间编的一个求解约瑟夫环的程序
#include<malloc.h>
#define LEN sizeof(struct linklist)
struct linklist
{int data;
struct linklist *next;
};
int N,M,Length,j,k,i,a,H,t;
main()
{struct linklist * head;
struct linklist * create();
printf("请输入总数 N:\n");
scanf("%d",&N);
printf("请输入开始的号码 H:\n");
scanf("%d",&H);
printf("请输入结束号码 M:\n");
scanf("%d",&M);
Length=N;
head=create();
print(head);
}
struct linklist * create()
{struct linklist *head;
struct linklist *p;
struct linklist *q;
head=(struct linklist * )malloc(LEN);
head->data=1;
q=(struct linklist * )malloc(LEN);
q->data=N;
head->next=q;
q->next=head;
for(i=N-1;i>1;i--)
  {p=(struct linklist * )malloc(LEN);
   p->data=i; p->next=head->next; head->next=p;
  }
return(head);
}
print(struct linklist *head)
{struct linklist *p;
struct linklist *p1,*p2,*p3;
a=1;
printf("输出结果如下:\n\n");
if(M==1 && H==1)
{p2=head->next;
  while(p2->next!=head)  p2=p2->next;
  while(p2->next!=p2)
  { printf("%-6d  ",p2->next->data);   p3=p2->next;
  p2->next=p2->next->next; free(p3); }
  printf("%-6d   ",p2->data); free(p2) ;
}
else
{ p=head;p1=p;
for(t=1;t<=H-1;t++)
{p=p->next;p1=p;}
for(k=1;k<=Length;Length--)
{for(j=1;j<M;j++)
    {p1=p;
     p=p->next;
    }
  printf("%-6d  ",p->data);
  a=a+1;
  if(a>10)
  { printf("\n");
    a=1;}
  p1->next=p->next; free(p); p=p1->next;
}
}
}

搜索更多相关主题的帖子: 闲暇 约瑟夫 时间 求解 
2008-04-20 20:18
编程游侠
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-4-13
收藏
得分:0 
回复 3# 的帖子
当然是我编的,如有什麽地方不完美,还请高手赐教。
2008-04-20 20:36
编程游侠
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-4-13
收藏
得分:0 
回复 6# 的帖子
谢谢!由于我是新会员,孤陋寡闻,不知道代码加高亮是什么意思,帮我解释一下好吗?
2008-04-20 20:54
快速回复:本人闲暇时间编的一个求解约瑟夫环的程序
数据加载中...
 
   



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

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