你的题目是比较两个数的大小并从小到大输出,现在给你分析下你错在什么地方了:
#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个值。