/* a8-4-4.c */
#include <stdio.h>

void swap3(int *p1, int *p2, int *p3);
void swap(int *p1, int *p2);

int main(void)
{
	int x = 10, y = 20, z = 30;

	printf("入れ替え前 x = %d y = %d z = %d\n", x, y, z);
	swap3(&x, &y, &z);
	printf("入れ替え後 x = %d y = %d z = %d\n", x, y, z);

	return 0;
}

/*** 3つの値を交換する ***/
/* （仮引数）*p1：交換する値1　*p2：交換する値2　*p3：交換する値3
   （返却値）なし */
void swap3(int *p1, int *p2, int *p3)
{
	swap(p1, p2);
	swap(p3, p1);
}

/*** 2つの値を交換する ***/
/* （仮引数）*p1：交換する値1　*p2：交換する値2 （返却値）なし */
void swap(int *p1, int *p2)
{
	int temp;

	temp = *p1;
	*p1 = *p2;
	*p2 = temp;
}
