当前位置: 代码迷 >> C语言 >> 奇怪!就是弄不明白?
  详细解决方案

奇怪!就是弄不明白?

热度:96   发布时间:2005-03-31 10:51:00.0
奇怪!就是弄不明白?
void inv(int x[],int n)
{ int temp,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
{ j=n-1-i;
  temp=x{i};x{i]=x[j];x[j]=temp;}
return;
}
main()
{int i,a[10]={3,7,9,11,0,6,7,5,4,2);
printf("the original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[j]);
printf("\n");
inv(a,10);
printf("the array has been inverted:\n");
for(i=0;i<10;i++)
printf("%d,",a[j]);
printf("\n");
}
到现在我都不明白上面的这段程序
{ int temp,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
{ j=n-1-i;
  temp=x{i};x{i]=x[j];x[j]=temp;}
return;
}
是什么意思里面的FOR是怎样循环的啊?
谢谢版主解答!~
搜索更多相关的解决方案: original  return  

----------------解决方案--------------------------------------------------------
for(i=0;i<=m;i++)
{ j=n-1-i;
  temp=x{i};x{i]=x[j];x[j]=temp;}
这是对数组中的数字进行对称的调换。
第一个数和最后一个调换,第二个和倒数第二个调换,第三个和倒数第三个调换,
就这样以此类推。
----------------解决方案--------------------------------------------------------
那FOR的语句是怎样的列!~?
----------------解决方案--------------------------------------------------------
temp=x{i};x{i]=x[j];x[j]=temp;} temp=x[i];x{i]=x[j];x[j]=temp;} temp只是存放数值的临时变量   //
----------------解决方案--------------------------------------------------------
还是没有说到要害!~
----------------解决方案--------------------------------------------------------
只要“I”不大于“(N-1)/2,则互换数组I[] J[]位置

J=(N-1)-(N-I)/2

当J超过(N--1)的一半就换位置
----------------解决方案--------------------------------------------------------
这样的 for语句,在每本书上都一大堆拉,自己看看不就明白啦
----------------解决方案--------------------------------------------------------
  相关解决方案