第一次直接冒泡,发现没这么简单。不过也是挺简单的,毕竟几个数都是从1开始到n的,标记下标和数值,两个数组,排列一下就ok的
#include<stdio.h>
int main()
{
int i,t;
int sum[1020],sum2[1020];
while(scanf("%d",&t)!=EOF)
{
int ans=0;
for(i=1;i<=t;i++)
{
scanf("%d",&sum[i]);
sum2[sum[i]]=i;
}
for(i=1;i<=t;i++)
{
if(sum2[i]!=i)
{
sum2[sum[i]]=sum2[i];
sum[sum2[i]]=sum[i];
ans++;
}
}
printf("%d\n",ans);
}
return 0;
}