发布网友 发布时间:2022-04-27 05:01
共4个回答
热心网友 时间:2022-04-12 17:37
main()
{
int i,test,p[17],head;
for(i=0;i<16;i++)
{
p[i]=i+1;
}
p[16]=0;
test=0;
while(test!=p[test])
{
for(i=1;i<3;i++)
{
head=test;
test=p[head];
}
p[head]=p[head];
}
printf("\n%5d",test);
}
程序如果是上面这样的话,
for里的语句等价于
for(i=1;i<3;i++)
{
test=p[test];
}
p[head]=p[head]; 这句没有改变到什么,可以略去.
while循环中等价于
while(test!=p[test])
{
for(i=1;i<3;i++)
{
test=p[test];
}
}
数组中值为1,2,3,-,16,0
执行到 test=p[16]之后, test=0;
循环在这里出不来,数组中的值不变,程序会一直一直跑..追问{
p[i]=i+1;
}
这个没有中括号
追答for(i=0;i<16;i++)
{
p[i]=i+1;
}
和
for(i=0;i<16;i++)
p[i]=i+1;
这里是一样的,有无括号都一样.
热心网友 时间:2022-04-12 18:55
可以在重新把程序写好吗?有点乱...如:
main()
{
int i,test,p[17],head;
for(i=0;i<16;i++) <-是不是少了一个 "{"?
p[i]=i+1;
p[16]=0;
test=0 while(test!=p[test]) <-这里有点奇怪,是不是少了一个";"?
....
热心网友 时间:2022-04-12 20:30
你这代码也忒乱了,好好排下版再说啊
热心网友 时间:2022-04-12 22:21
请问这题答案是什么啊