簡單的思路:
定義壹個指針數組,找到b數組中元素在a數組中的地址,並存儲在指針數組對應位置。
之後將指針數組內的地址值依次取出來與a數組首地址相減,得到的就是原來的位置。
利用的原理:數組內地址是連續的!
#include?<stdio.h>int?main()
{
int?a[5]={3,?8,?4,?7,?6},?b[5]={8,?7,?6,?4,?3},c[5],i,j,*p[5];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(b[i]==a[j])
p[i]=&a[j];
}
}
for(i=0;i<5;i++)
c[i]=p[i]-&a[0]+1;
printf("原來的位置數組c[5]={%d,%d,%d,%d,%d}\n",c[0],c[1],c[2],c[3],c[4]);
}