易截截图软件、单文件、免安装、纯绿色、仅160KB

约瑟夫问题的循环链表解法 C/C++

/*
title:约瑟夫问题的循环链表解法
author:coolsky600
date:2010 04 22
notice:c语言 面向过程
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int num;        //全局变量围圈人数
int out;        //出去的初始号码
typedef struct Node      //定义座位结构体
{
 int num;
 struct Node *next;
};
Node *creat()       //初始化循环链表
{
 extern int num;      //声明全局变量
 extern int out;      //声明全局变量
 int i,flag=0;      
 Node *p1,*p2,*head;
 printf("一共几个人围圈?");
 scanf("%d",&num);
 printf("开始第几个出去?");
 scanf("%d",&out);
 head=p1=p2=(Node *)malloc(sizeof(Node));
 head->num=0;      //第一个节点值为 0
 for(i=0;i<num-1;i++)    //再生成nun-1个节点连入链表
 {
  p1=(Node *)malloc(sizeof(Node));
  p1->num=i+1;
  p2->next=p1;
  p2=p1;
  flag++;       //flag用于区别第一个节点
 }
 p2->next=head;
 return head;
}
void show(Node *head)     //显示出局的顺序
{
 extern int out;      //声明全局变量
 extern int num;      //声明全局变量
 Node *p,*p1;
 p=head;
 int i,j;
 for(j=1;j<num;j++)     //控制输出的次数为num-1
 {
  for(i=0;i<out-1;i++)   //以当前p指针围基准以num-1为偏移量找到下一个出具的人
  {
   p=p->next;
  }
  p1=p->next;
  out=p1->num;     //将出局号码赋给


相关文档:

函数的解析之C/C++

      函数是程序的执行模块,是整个项目的细胞,如何组织好每一个函数的结构,如何提高程序的可读性和运行效率,是程序员们不断品味的主体。有时函数的设计能直接体现出程序员对C/C++的理解和感悟。
      C/C++的函数类型不对外乎以下几种,有些描述可能不太贴切:
......

c++与java的构造函数

今天继续学习java和android平台  java的学习算是补充,因为没有java基础也做不出什么东西来
今天看到java用this关键字来重载构造方法,在这里做个笔记class a_sample{
public int x,y.z;
a_sample(int x){
this.x=x;
}
a_sample(int x,int y){
this(x);
this.y=y;
}
a_sample(int x ......

C/C++单元测试理论精要(九)

3.2 高效率测试:四两拔千斤
 
    上一节介绍了一些似是而非的高效率方法,那么,怎样才能真正高效率测试呢?真正的高效率,不能忽略人的智慧这一关键因素。
由于工具不可能自动了解代码的设计功能,只有人才了解,因此,只有人的智慧及时介入,工具才能做正确的事情,才能达到真正的高效率。
&nb ......

LINUX C程序开发每日一题——指针

 
实现一个链表,完成链表的插入,查找,删除
 
typedef struct _FIFO_M{
  void *pdata;
struct _FIFO_M *pNext;
}FIFO_M,* pFIFO_M;
 
typedef struct _FIFO{
pFIFO_M head;
pFIFO_M tail;
pFIFO_M pos;
int mcount;//节点个数
int max_count;//节点最大个数。
}FIFO,* pFIFO;
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号