这道题,其实是对输入的数列进行选择排序。在选择排序时,如果需要交换连个数就需要一个swap。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define SIZE 110
int num[SIZE];
int nasce,n,inte,Min,Index,Count,k;
int main()
{
while(scanf("%d",&nasce) != EOF)
{
k = 0;
while(nasce--)
{
scanf("%d",&n);
Count = 0;
for(int i = 1; i <= n; i++)
scanf("%d",&num[i]);
for(int i = 1; i < n; i++)
{
Min = num[i];
Index = i;
for(int j = (i + 1); j <= n; j++)
if(num[j] < Min)
{
Min = num[j];
Index = j;
}
if(i != Index)
{
swap(num[i],num[Index]);
Count++;
}
}
printf("Case %d: %d\n",++k,Count);
}
}
return 0;
}