退休金按工龄:如何解决这道C语言题目?

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 13:14:47
首先谢谢各位!希望能帮我解决这道难题:
#include<stdio.h>
main()
{int i,tst,p[17],head;
for(i=0;i<16;i++)
p[i]=i+1;
p[16]=0;
tst=0;
while(tst!=p[tst])
{for(i=1;i<3;i++)
{head=tst;
tst=p[tst];
}
p[head]=p[tst];
tst=p[head];
}
printf("\n%5d",tst);
}
最后tst=10.
但是我不知道为什么会等于10?希望各位能帮帮我!!谢谢!!!急救!!!!
能不能更仔细一点啊!!!我还是不明白啊!!为什么tst=10?我知道head=tst,但这与"tst=10"有什么关系呢?
对不起哦,我是新手,所以请你们能尽量写仔细一点,最好有解题的具体步骤!!!谢谢!!

慢慢的读一下就知道了
关键在:
head=tst;
tst=p[tst];
}
p[head]=p[tst];
tst=p[head];

看懂了~但是说不清楚哦~~
你自己在心里模拟执行一下就能看懂了
或者你把执行顺序拿笔写出来在看就能看懂!