// 交换两个变量的值#include<stdio.h>// 引入中间变量e,用于交换变量c d 的值voidSwap(int c,int d) {int e=0; e = c; c = d; d = e;// printf("%d %d", c, d);}intmain(void) {int a =0, b =0;scanf("%d%d",&a,&b);printf("a=%d b=%d\n", a, b); //交换前测试Swap(a, b);printf("a=%d b=%d\n", a, b);return0;}
这是 SOL 1 方法,为什么没有实现呢?c 语言是传值调用,这里并没有改变值,要传指针才行。
指针作为函数参数:
#include<stdio.h>//指针作为函数参数voiddecompose(double x,long*int_part,double*frac_part){*int_part = (long)x;*frac_part = x -*int_part;}double x =3.14159265358979323846;long int_part;double frac_part;intmain(){// 调用函数decompose(x,&int_part,&frac_part);// 输出结果printf("整数部分: %ld\n", int_part);printf("小数部分: %f\n", frac_part);return0;}