快好知 kuaihz订阅观点

 

输入两个整数a,b,实现两个数的交换

错误方法一:

基本上,想到两个数交换

就会使用:

 #include

using namespace std;

int swap(int a,int b){

    int t=a;

    a=b;

    b=t;

}

int main(){

    cout<<swap(1,2)<<endl;

}

结果是错的:

解析: 

 正确方法2:

采用指针

#include

using namespace std;

//因为在swap函数里面  x,y 没有作用域

//*a *b 就延伸了这个作用域到了 x,y

int swap(int *a,int *b){

    int t=*a;//*a指向的就是x 他就是x

    *a=*b;

    *b=t;

}

int main(){

    int x,y;

    cout<<"input 2 num:"<<endl;

    cin>>x>>y;

    swap(&x,&y);

    cout<<x<<" "<<y<<endl;

}

 

 

陷阱3:

int swap(int *a,int *b){

int *t=*a;

*a=*b;

*b=*t

}

这种写法是错误的!

正确的改写:

 

写法4:

引用类型:

 

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:两个  两个词条  整数  整数词条  输入  输入词条  交换  交换词条  实现  实现词条  
综合

 在电脑上怎么制作家谱?

历来家谱记法:第一步当然是找找别人是怎么写家谱的。以下系日本记谱规范:由图可见,男性居右,女性居左;中间通过双横线相连。直系亲属加外框,并于左右侧记入生殁年。女...(展开)