为什么交换了a,b还是3,4

void swap (int a,int b)

{ int c;

c=a; a=b; b=c; }

main( )

{int a=3,b=4;

swap(a,b);

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

}

因为这是值传递,不会对主函数中的值造成影响,可以考虑使用指针址传递或者引用的方式来实现。
例如这样:

void swap(int *a, int *b)
{
  int c=*a; 
  *a=*b; 
  *b=c;
}
int main()
{
   int a=1,b=2;
   swap(&a,&b);
   printf("%d %d",a,b);
   return 0;
}

希望对题主有所帮助!可以的话,帮忙点个采纳!