Chinaunix首页 | 论坛 | 博客
  • 博客访问: 603888
  • 博文数量: 113
  • 博客积分: 2554
  • 博客等级: 少校
  • 技术积分: 1428
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-21 19:53
文章分类

全部博文(113)

文章存档

2014年(1)

2013年(2)

2012年(94)

2011年(16)

分类: LINUX

2012-03-06 20:09:53

  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef struct student
  4. {
  5.     int data;
  6.     student *next;

  7. }node;

  8. node *creat(int n, int a[])
  9. {
  10.     node *head, *p, *s;
  11.     head = (node *)malloc(sizeof(node));
  12.     p = head;
  13.     for (int i = 0; i < n ; i++)
  14.     {
  15.         s = (node *)malloc(sizeof(node));
  16.         s->data = a[i];
  17.         p->next = s;
  18.         p = s;
  19.     }
  20.     head = head->next;
  21.     p->next = head;
  22.     return head;
  23. }


  24. void circle(int step,int n, int input[],int output[])
  25. {
  26.     node *p = (node *)malloc(sizeof(node));
  27.     int k = 0;
  28.     p = creat(n,input);

  29.     while (p->next != p)
  30.     {
  31.         for(int i = 0 ; i < step - 1 ; i++)
  32.         {
  33.             p = p->next;
  34.         }
  35.         step = p->next->data;
  36.         p->next = p->next->next;
  37.         p = p->next;
  38.         output[k] = step;
  39.         k++;
  40.     }
  41.     output[k] = p->data;
  42.     for(int j = 0 ; j < 10 ;j++ )
  43.     {
  44.         printf("%d ",output[j]);
  45.     }
  46. }




  47. int main(void)
  48. {
  49.     int a[]={1,2,3,4,5,6,7,8,9,10};
  50.     int b[10];
  51.     int step = 2;
  52.     printf("数列初始跳步长:%d\n",step);
  53.     printf("输出数组的结果:");
  54.     circle(step,10,a,b);
  55.     return 0;
  56. }
阅读(518) | 评论(0) | 转发(0) |
0

上一篇:高精度运算合集

下一篇:单链表操作

给主人留下些什么吧!~~