|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我学习的时候按照他的代码打了一遍,发现只会输出最大的数,一开始还以为我打错了。后来发现小甲鱼的代码里面s一样没有初始化,初始化完也是输出41;
有点郁闷这个代码应该怎么改才能输出每个自杀的人的顺序。每数到3的人就自杀;
小甲鱼老师的代码如下
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct node
- {
- int data;
- struct node *next;
- }node;
- node *create(int n)
- {
- node *p = NULL, *head;
- head = (node*)malloc(sizeof (node ));
- p = head;
- node *s;
- int i = 1;
- if( 0 != n )
- {
- while( i <= n )
- {
- s = (node *)malloc(sizeof (node));
- s->data = i++; // 为循环链表初始化,第一个结点为1,第二个结点为2。
- p->next = s;
- p = s;
- }
- s->next = head->next;
- }
- free(head);
- return s->next ;
- }
- int main()
- {
- int n = 41;
- int m = 3;
- int i;
- node *p = create(n);
- node *temp;
- m %= n; // m在这里是等于2
- while (p != p->next )
- {
- for (i = 1; i < m-1; i++)
- {
- p = p->next ;
- }
- printf("%d->", p->next->data );
- temp = p->next ; //删除第m个节点
- p->next = temp->next ;
- free(temp);
- p = p->next ;
- }
- printf("%d\n", p->data );
- return 0;
- }
复制代码 |
|