编程高手来。。。求个C语言程序

来源:百度知道 编辑:UC知道 时间:2024/05/24 05:13:12
猴子选大王**
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n m,n 为整数,n<m
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能
下面是我写的程序。。程序无错,但是运行出错:
#include "stdio.h"
#include "stdlib.h"
typedef struct node
{
int data ;
struct node *next;
}
NODETYPE;

NODETYPE *initial(int m) /*生成含有m个结点的环形链表*/
{
int i;
NODETYPE *head,*p,*s;
p=(NODETYPE*)malloc (sizeof(NODETYPE)); /*开辟第一个结点*/
head=p; /*头指针指向第一个结点*/
p->data=1; /*第一只猴子的编号为1*/
for(i=2;i<=m;i++) /*循环生成第2~m个结点*/
{
s=(NODETYPE*)malloc(sizeof(NODETYPE)); /*生成新结点*/
s->data=i; /*存入

楼上的我又发现个小问题,被我修改了,完全运行通过

#include "stdio.h"
#include "stdlib.h"
typedef struct node
{
int data ;
struct node *next;
}
NODETYPE;

NODETYPE *initial(int m) /*生成含有m个结点的环形链表*/
{
int i;
NODETYPE *head,*p,*s;
p=(NODETYPE*)malloc (sizeof(NODETYPE)); /*开辟第一个结点*/
head=p; /*头指针指向第一个结点*/
p->data=1; /*第一只猴子的编号为1*/
for(i=2;i<=m;i++) /*循环生成第2~m个结点*/
{
s=(NODETYPE*)malloc(sizeof(NODETYPE)); /*生成新结点*/
s->data=i; /*存入猴子的编号*/
p->next=s; /*新结点连表尾*/
p=s;
}
p->next=head; /*形成环*/
return head;

}