形参和实参的传值问题。下面的运行不了?

来源:百度知道 编辑:UC知道 时间:2024/05/07 00:56:40
#include "stdafx.h"
#include "stdio.h"
float f(float x,float y);
void main()
{
int a,b;
scanf("%d%d",&a,&b);
swap(a,b);
printf("a=%d\tb=%d\n",a,b);

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

养成函数调用的时候,注意它是否声明了,或者在你调用函数的前面定义的习惯。
所以你想运行,有两种方法:
一个是声明下函数,在main()函数里面加句swap()函数声明;
或者把swap函数定义在main()函数前面。
另外你这个函数,要交换a,b的值,但是由于你用了值传递,所以a,b并没有真正的交换,你的输出也不会是交换结果。改成引用传递就好了。
#include <stdio.h>
float f(float x,float y);
void main()
{
int a,b;
void swap(int &x,int &y);//声明
scanf("%d%d",&a,&b);
swap(a,b);
printf("a=%d\tb=%d\n",a,b);

}
void swap(int &x,int &y)
{
int t;
t=x;x=y;y=t;
}
这是改好的,可以实现交换效果。

把main 函数 和swap函数的位置交换下

swap函数没有声明