#include<stdio.h>
#include<windows.h>
#include<string.h>
#include<math.h>
#pragma warning(disable:4996)
//交换两个数
void change(int *a, int *b)
{
int tep = 0;
tep = *a;
*a = *b;
*b = tep;
}
//不创建临时变量交换两个数
void swap(int *a, int *b)
{
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
int Max()
{
int a[] = { 34,65,13,76,2,5,8,43,71,24 };
int num = sizeof(a) / sizeof(a[0]);
int max = a[0];
int i = 1;
for (; i < num; i++)
{
if (max < a[i])
max = a[i];
}
return max;
}
void sort(int d, int e, int f)
{
if (d > e)
{
if (f > d)//z x y
printf("%d,%d,%d\n", f,d,e);
else if (f > e)//x z y
printf("%d,%d,%d\n", d,f,e);
else//x y z
printf("%d,%d,%d\n", d,e,f);
}
else
{
if (f > e)//z y x
printf("%d,%d,%d\n", f,e,d);
else if (f > d)//y z x
printf("%d,%d,%d\n", e,f,d);
else//y x z
printf("%d,%d,%d\n", e,d,f);
}
}
int divisor(int x,int y)
{
int min=(x > y ? y : x);
while(min > 1)
{
if (y% min == 0 && x%min == 0)
{
break;
}
min--;
}
return min;
}
int main()
{
//1. 给定两个整形变量的值,将两个值的内容进行交换。
int x = 8;
int y = 9;
printf("Value before swap:%d,%d\n\n", x, y);
change(&x, &y);
printf("Exchanged values:%d,%d\n\n", x, y);
//2. 不允许创建临时变量,交换两个数的内容(附加题)
swap(&x, &y);
printf("Exchanged values:%d,%d\n\n", x, y);
//3.求10 个整数中最大值。
int max = Max();
printf("the max num=%d\n\n", max);
//4.将三个数按从大到小输出。
sort(12, 11, 15);
//5.求两个数的最大公约数。
int m=divisor(45, 23);
printf("Greatest common divisor:%d\n", m);
system("pause");
}