C语言中定义一个函数交换两个数的值?

#include<stdio.h>
void Swap1 (int a,int b)
{
int c = a;
a = b;
b = c;
}

main()
{
int a,b;
scanf("%d,%d",&a,&b);
printf("\na=%d,b=%d",a,b);
Swap1(&a,&b);
printf("\na=%d,b=%d",a,b);

}
这个函数问题出在哪里

#include <stdio.h>

void Swap1(int* a, int* b)

{

    int c = *a;

    *a = *b;

    *b = c;

}


main()

{

    int a, b;

    scanf("%d,%d", &a, &b);

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

    Swap1(&a, &b);

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

}

追问

为什么要用指针

为什么要用指针

追答

不用指针根本做不到,形参是实参副本,你改变形参根本不会对实参有任何影响

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-28
#include <stdio.h>void Swap1(int* a, int* b){ int c = *a; *a = *b; *b = c;}
main(){ int a, b; scanf("%d,%d", &a, &b); printf("\na=%d,b=%d", a, b); Swap1(&a, &b); printf("\na=%d,b=%d", a, b);}
第2个回答  2022-06-29
#include <stdio.h>void Swap1(int* a, int* b){ int c = *a; *a = *b; *b = c;}
main(){ int a, b; scanf("%d,%d", &a, &b); printf("\na=%d,b=%d", a, b); Swap1(&a, &b); printf("\na=%d,b=%d", a, b);}
第3个回答  2022-06-29
#include <stdio.h>void Swap1(int* a, int* b){ int c = *a; *a = *b; *b = c;}
main(){ int a, b; scanf("%d,%d", &a, &b); printf("\na=%d,b=%d", a, b); Swap1(&a, &b); printf("\na=%d,b=%d", a, b);}
第4个回答  2022-06-29
#include <stdio.h>void Swap1(int* a, int* b){ int c = *a; *a = *b; *b = c;}
main(){ int a, b; scanf("%d,%d", &a, &b); printf("\na=%d,b=%d", a, b); Swap1(&a, &b); printf("\na=%d,b=%d", a, b);}
相似回答