/*两整形交换,引进临时变量*/
//
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a = 10;
// int b = 20;
// int temp = 0;
//
// temp = a;
// a = b;
// b = temp;
// printf("a=%d b=%d\n ", a, b);
// system("pause");
// return 0;
//}
/*不创建临时变量交换数值*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a = 50;
// int b = 20;
//
// a = a + b;
// b = a - b;
// a = a - b;
//
// printf("a=%d b=%d ", a, b);
// system("pause");
// return 0;
// }
/*再换一种写法,不加临时变量(异或)*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a = 50;
// int b = 20;
// printf("%d %d\n", a, b);
//
// a = a^b;
// b = a^b;
// a = a^b;
// printf("%d %d\n", a, b);
//
// system("pause");
// return 0;
//}
/*求十个数中最大的数*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int i = 0;
// int arr[10];
//
// while (1)
// {
// printf("请输入10个数,以空格间隔:");
// for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)//用 sizeof(arr) / sizeof(arr[0])来检验出数组里有多少个数;
// {
// scanf_s("%d", &arr[i]);
// }
// int max = arr[0];
// for (i = 1; i < sizeof(arr) / sizeof(arr[0]); i++)
// {
// if (max < arr[i])
// {
// max = arr[i];
// }
// }
// printf("%d ", max);
// }
//
// system("pause");
// return 0;
//}
/*求3个数中最大的数*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a, b, c, t;
// printf("请输入三个数:");
// scanf_s("%d %d %d ", &a, &b, &c);
//
// if (a < b)//运用两数交换
// {
// t = a;
// a = b;
// b = t;
// }
// if (a < c)
// {
// t = a;
// a = c;
// c = t;
// }
// if (b < c)
// {
// t = b;
// b = c;
// c = t;
// }
// printf("%d %d %d ", a, b, c);
// system("pause");
// return 0;
//}
/*求两个数的最大公约数*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
printf("请输入2个数:");
scanf_s("%d%d", &a, &b);
//这里不用判断a,b的大小,因为后面的while运算会转换;
int t = 0;
while(a%b != 0)
{
t = a%b;
a = b;
b = t;
}
printf("%d ", b);
system("pause");
return 0;
}
//
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a = 10;
// int b = 20;
// int temp = 0;
//
// temp = a;
// a = b;
// b = temp;
// printf("a=%d b=%d\n ", a, b);
// system("pause");
// return 0;
//}
/*不创建临时变量交换数值*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a = 50;
// int b = 20;
//
// a = a + b;
// b = a - b;
// a = a - b;
//
// printf("a=%d b=%d ", a, b);
// system("pause");
// return 0;
// }
/*再换一种写法,不加临时变量(异或)*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a = 50;
// int b = 20;
// printf("%d %d\n", a, b);
//
// a = a^b;
// b = a^b;
// a = a^b;
// printf("%d %d\n", a, b);
//
// system("pause");
// return 0;
//}
/*求十个数中最大的数*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int i = 0;
// int arr[10];
//
// while (1)
// {
// printf("请输入10个数,以空格间隔:");
// for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)//用 sizeof(arr) / sizeof(arr[0])来检验出数组里有多少个数;
// {
// scanf_s("%d", &arr[i]);
// }
// int max = arr[0];
// for (i = 1; i < sizeof(arr) / sizeof(arr[0]); i++)
// {
// if (max < arr[i])
// {
// max = arr[i];
// }
// }
// printf("%d ", max);
// }
//
// system("pause");
// return 0;
//}
/*求3个数中最大的数*/
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
// int a, b, c, t;
// printf("请输入三个数:");
// scanf_s("%d %d %d ", &a, &b, &c);
//
// if (a < b)//运用两数交换
// {
// t = a;
// a = b;
// b = t;
// }
// if (a < c)
// {
// t = a;
// a = c;
// c = t;
// }
// if (b < c)
// {
// t = b;
// b = c;
// c = t;
// }
// printf("%d %d %d ", a, b, c);
// system("pause");
// return 0;
//}
/*求两个数的最大公约数*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
printf("请输入2个数:");
scanf_s("%d%d", &a, &b);
//这里不用判断a,b的大小,因为后面的while运算会转换;
int t = 0;
while(a%b != 0)
{
t = a%b;
a = b;
b = t;
}
printf("%d ", b);
system("pause");
return 0;
}