两个字符交换不了,怎么修改???。。。。

#include<iostream>
using namespace std;
void swap(char ch1,char ch2)
{
    char ch;
    if(ch1<ch2)
    {
        ch=ch1;
        ch1=ch2;
        ch2=ch;
    }
}
int main()
{
    char ch1,ch2;
    cin>>ch1>>ch2;
    swap(ch1,ch2);
    cout<<ch1<<ch2<<endl;
    return 0;
}

除了上面说到的设置为引用类型,也可以使用指针方法在函数中修改变量对应的值。 

#include<iostream>
using namespace std;
void swap(char *ch1,char *ch2)
{
    char ch;
    if(*ch1<*ch2)
    {
        ch=*ch1;
        *ch1=*ch2;
        *ch2=ch;
    }
}
int main()
{
    char ch1,ch2;
    cin>>ch1>>ch2;
    swap(&ch1,&ch2);
    cout<<ch1<<ch2<<endl;
    return 0;
}

 

调用函数的时候传的是值,改成引用类型

void swap(char ch1,char ch2)改为void swap(char &ch1,char &ch2) 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

分2条语句输出就正常,你可以测试一下