C++变量引用有关问题

C++变量引用问题
两个整数,由从大到小顺序输出,,,看看有什么问题,跟书上一样,但输出结果就是不对。。。。。
#include<iostream>
using namespace std;
int main()
{
void swap(int &,int &);
int a,b;
cin>>a>>b;
swap(a,b);
cout<<a<<" "<<b<<endl;
return 0;
}

void swap(int &r1,int &r2)
{
int m;
if(r1<r2)
{
m=r1;
r1=r2;
r2=m;


}

------解决方案--------------------
C/C++ code
#include<iostream>
using namespace std;

void swap(int &,int &);
int main()
{    
    int a,b;
    cin>>a>>b;
    swap(a,b);
    cout<<a<<" "<<b<<endl;
    return 0;
}

void swap(int &r1,int &r2)
{
    int m;
    if(r1<r2)
    {
        m=r1;
        r1=r2;
        r2=m;
    } 
}

------解决方案--------------------
#include<iostream>
using namespace std;
int main()
{
void swap(int &,int &);//作用域仅在main之内
int a,b;
cin>>a>>b;
swap(a,b);//不会执行
cout<<a<<" "<<b<<endl;
return 0;
}

void swap(int &r1,int &r2)
{
int m;
if(r1<r2)
{
m=r1;
r1=r2;
r2=m;
}

}
------解决方案--------------------
探讨

C/C++ code

#include<iostream>
using namespace std;

void swap(int &amp;r1,int &amp;r2)
{
int m;
if(r1<r2)
{
m=r1;
r1=r2;
r2=m;
}
}

int main()
{
int a,……

------解决方案--------------------
探讨

C/C++ code

#include<iostream>
using namespace std;

void swap(int &amp;r1,int &amp;r2)
{
int m;
if(r1<r2)
{
m=r1;
r1=r2;
r2=m;
}
}

int main()
{
int a,……