你的题目是比较两个数的大小并从小到大输出,现在给你分析下你错在什么地方了:
#include "stdio.h"
void main()
{
void w(int a,int b);
//这里是声明,放在main()函数里面还是放在外面都可以;
int x,y;
printf("请输入2个数:");
scanf("%d,%d",&x,&y);
if(x>y)
//如果x>y,那么进入自定义函数w();
w( x, y);
printf("%d %d",x,y);
//输出x,y的值;
}
void w(int a,int b)
{
int c;
c=a;
a=b;
b=c;
}
你的x和y的值确实赋给a和b了,但是a和b的值在互换过以后是不会传给x和y的,也就是说只能实参的值传给形参,形参的值是不会传给实参的,
所以在你主函数main里的x,y的值根本就没有变,想要得到你要的效果就要在你的自定义函数中加上一句:printf("%d,%d\n",a,b);
主函数的printf前面要加个else 不然它在输出了交换后a,b的值后还要运行主函数中的printf,也就是说会输出4个值。