首页
社区
课程
招聘
[原创][代码之美][自主命题]用数组索引当指针使用,建立链表
2008-11-12 11:46 9995

[原创][代码之美][自主命题]用数组索引当指针使用,建立链表

2008-11-12 11:46
9995
这个例子是用数组的索引当作指针,建立循环链表。
具体的问题是那个1000人报数出列找最后一个人的例子。
注释不好写,代码也不长,很好理解的。
小弟献丑了

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

int get(int n)
{
    int *arry = (int*)malloc(sizeof(int)*n);
    int i;

    for (i=0; i<n; i++)
    {
        arry[i] = i+1;
    }

    arry[n-1] = 0;

    i = 0;

    while (arry[i] != i)
    {
        i = arry[arry[i]] = arry[arry[arry[i]]];
    }

    return i;
}


int __cdecl main(void)
{
    int n;

    scanf("%d", &n);

    printf("%d", get(n));
}


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 8188
活跃值: (4243)
能力值: ( LV15,RANK:2459 )
在线值:
发帖
回帖
粉丝
ccfer 16 2008-11-12 11:56
2
0
还真是没看懂
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
skylly 4 2008-11-12 13:26
3
0
,额,理解不来...
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
haishou 2009-1-11 14:23
4
0
也是不大明白。。。
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
绿豆青蛙 2009-5-31 22:10
5
0
i = arry[arry[i]] = arry[arry[arry[i]]];
这句很诡异
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ziyawp 2009-9-13 03:30
6
0
[QUOTE=绿豆青蛙;633888]i = arry[arry[i]] = arry[arry[arry[i]]];
这句很诡异[/QUOTE]

一起诡异...
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
marszhk 2010-3-16 09:44
7
0
直接说有什么作用好了,感觉很模糊~
游客
登录 | 注册 方可回帖
返回