Anh chị giúp em bài này vs ạ
Cho dãy số A có n phần tử được đánh số thứ tự từ 1 đến n.

Viết chương trình đổi chỗ hai phần tử ở vị trí x và y của dãy A
đây là code của em
#include<iostream>
#include<cstdlib>

using namespace std;
void hoanvi(int &a, int &b)
{
int temp=a;
a=b;
b=temp;
}
void nhapmang(int so[], int n)
{


int i=0;

while(i<n)
{
cin>>so[i];
i++;

}
}
int vitria( int so[],int n, int a)
{




for(int i=0; i<n ; i++)

if(so[i]==a)

return i;


}
int vitrib(const int so[],int n, int b)
{

for(int i=0; i<n ; i++)

if(so[i]==b)

return i;



}
void xuatmang(int so[],int n)
{
int a;
int b;

for(int i=0;i<n; i++)
{
cout<<so[i]<<" ";
}

}
void doicho(int so[], int n)
{
int a;
int b;
int A=vitria(so, n, a);
int B=vitrib(so, n, b);
hoanvi(so[A],so[B]);
}

int main()
{
int a, b, n;
cin>>n;
int so[n];
nhapmang(so, n);
cin>>a>>b;
doicho(so,n);
xuatmang(so,n);
return 0;
}
Ai chỉ xem em sai chỗ nào vs ạ
Em xin cảm ơn