単純な挿入ソートを試みています。しかし、ビット単位の操作を使用すると、私が試みているスワッピングが機能しません。
しかし、別の一時変数を使用すると、スワッピングが機能します。このコードをコンパイルすると、常に余分な 0 が得られます。
コードの何が問題なのかを知るにはどうすればよいですか?
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<algorithm>
using namespace std;
void swap(int* a, int* b)
{
*a=*a^*b;
*b=*a^*b;
*a=*a^*b;
}
int main(void)
{
int arr[size];
int i,j,min;
for(i=0; i<size; i++)
arr[i]=rand()%100;
for(i=0; i<size; i++)
printf("%d ",arr[i]);
putchar('\n');
for(i=0; i<size;i++)
{
min=i;
for(j=i+1;j<size;j++)
if(arr[j]<arr[min])
min=j;
swap(&arr[i],&arr[min]);
}
for(i=0; i<size; i++)
printf("%d ",arr[i]);
putchar('\n');
return 0;
}