c语言中用函数交换两个变量的值?

程序输出是1,2不是2,1#include"Stdio.h"#include"Conio.h"voidswap(intx,inty){intt;t=x;x=y;y=t;}... 程序输出是1,2 不是2,1
#include "Stdio.h"
#include "Conio.h"

void swap(int x,int y)
{ int t;
t=x;
x=y;
y=t;

}

main()
{ int a,b;
a=1,b=2;
swap(a,b);
printf("%d,%d",a,b);
getch();
}
添加了return x,y;输出还是1,2
展开
 我来答
花降如雪秋风锤
高粉答主

2019-09-25 · 甘于平凡,却不甘于平凡地溃败。
花降如雪秋风锤
采纳数:276 获赞数:83243

向TA提问 私信TA
展开全部

c语言中用函数交换两个变量的值方法是先将变量赋值给中间变量,然后中间变量再赋值给另外一个变量,程序如下:

#include "Stdio.h"

#include "Conio.h"

void swap(int x,int y)

int t,m;

t=x;  //变量x赋值给中间变量t

m=y;    //变量y赋值给中间变量m

x=m;    //中间变量m赋值给变量x,将y的值赋值给了x。

y=t;      //中间变量t赋值给变量y,将x的值赋值给了y。

}

main()

int a,b;

a=1,b=2;

swap(a,b); //调用交换函数

printf("%d,%d",a,b);

getch(); 

}

扩展资料:

C语言的语法结构:

1、顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。

顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构。

2、选择结构

对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。

选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

3、循环结构

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。

四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

参考资料来源:百度百科-C语言

苑人考尹
2019-10-29 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:645万
展开全部
这个无法交换数据。
c语言函数参数的基本规则是值传递,所以传递时只能实现实参向形参的单向的、值的传递。这就是为什么需要使用指针才能实现值交换的原因。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dos62
推荐于2017-09-03 · TA获得超过1660个赞
知道大有可为答主
回答量:1410
采纳率:0%
帮助的人:2144万
展开全部
#include "Stdio.h"
#include "Conio.h"

void swap(int* x,int *y)
{ int t;
t=*x;
*x=*y;
*y=t;

}

main()
{ int a,b;
a=1,b=2;
swap(&a,&b);
printf("%d,%d",a,b);
getch();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b9ee1b5
2008-01-06
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
输入变量:x,y
#include<stdio.h>
void main()
{int x,y,*xp=&x,*yp=&y;
void f(int*xp,int*yp );
f(xp,yp);
}
void f(int*xp,int*yp )
{int a;
a=*xp;
*xp=*yp;
*yp=a;
}
调用函数后,x,y的值就被交换了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ltj1682
2008-01-05 · 超过11用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:0
展开全部
应该在void swap(int x,int y)
{ int t;
t=x;
x=y;
y=t;
return x,y;
}
里添加一句,如上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式