利用指针交换两个值:
#include <stdio.h>
void swap(int *pa, int *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
int main()
{
int a = 10;
int b = 20;
printf("a=%d b=%d\n", a, b);
swap(&a, &b);
printf("a=%d b=%d\n", a, b);
return 0;
}
不用第三个变量交换两个数的内容:
#include <stdio.h>
int main()
{
int a = 11;
int b = 7;
printf("a=%d b=%d\n", a, b);
a = a^b;
b = a^b;
a = b^a;
printf("a=%d b=%d\n", a, b);
return 0;
}
10个数求最大值:
#include <stdio.h>
int main()
{
int arr[10] = { 2, 3, 4, 8, 16, 15, 23, 21, 1, 9 };
int i = 0;
int MAX = 0;
for (i = 0; i < 10; i++)
{
if (arr[i] > MAX)
MAX = arr[i];
}
printf("MAX=%d\n", MAX);
return 0;
}
三个数按从大到小排列:
#include <stdio.h>
void swap(int *px, int *py)
{
int tmp = *px;
*px = *py;
*py = tmp;
}
int main()
{
int arr[3] = { 13, 3, 20 };
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 3 - i; j++)
{
if (arr[j] < arr[j + 1])
swap(&arr[j+1], &arr[j]);
}
}
for (i = 0; i < 3; i++)
{
printf("%d>", arr[i]);
}
return 0;
}
求两个数的最大公约数:
#include <stdio.h>
int main()
{
int a = 60;
int b = 24;
if (a < b)
swap(&a, &b);
if (a / b == 0)
printf("最大公约数:%d\n", b);
else
printf("最大公约数:%d\n", a%b);
return 0;
}