C语言输入两个数,将他们顺序调换

今天没事输入一个C语言程序,输入两个字符,然后让他们输出时调换位置,比如a b 输出为b a 但不知道为什么几天试了好几次都没换过来,知道的说下怎么回事,谢谢啦!!!(我用的是WIN-TC)#include <stdio.h>
void fun(char a,char b)
{
char ch;
ch=a;
a=b;
b=ch;
}
main()
{
char x,y;
printf("input two char:(x,y)\n");
scanf("%c %c",&x,&y);
fun(x,y);
printf("%c %c",x,y);
getch();
}这是程序

形参发生了改变 就是FUN的两个参数调换了但是实参 x和y并不会调换 可以用指针变量来实现参数x和y的调换fun(char *a,char *b){char ch;</p><p>ch=*a;</p><p>*a=*b;</p><p>*b=ch;</p><p>}从main函数中传递两个参数x和y的指针变量,这样得到的结果的变了
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-20
void fun(char *a,char *b)
{
char ch;
ch=*a;
*a=*b;
*b=ch;
}
main()
{
char x,y;
printf("input two char:(x,y)\n");
scanf("%c %c",&x,&y);
fun(&x,&y);
printf("%c %c",x,y);
getch();
}

本回答被网友采纳
相似回答