给定两个整形变量的值,将两个值的内容进行交换:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 1;
int c;
c = a;
a = b;
b = c;
printf("%d %d", a, b);
system("pause");
return 0;
}
给定两个整形变量的值(不创建临时变量)将两个值的内容进行交换:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 10; //01010
int b = 20; //10100
a = a^b; //a=11110 b=10100
b = a^b; //b=01010 a=11110
a = a^b; //a=10100
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
求10个整数中最大值:
思路分析:创建一个临时变量max,数组遍历出的每一个数都与max比较,如果比max大就赋给max,最终输出的max就是数组中最大的数
代码示例:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int arr[10] = { 1, 9, 5, 48, 52, 64, 98, 7505, 944, 10 };
int max = 0;
for (int i = 0; i < 11; ++i)
{
if (arr[i]>max)
{
max = arr[i];
}
}
printf("%d\n", max);
system("pause");
return 0;
}
将三个数从大到小输出:
思路分析:把两个数先比较得出一个较大值与一个较小值,在把第三个数与之分别相比,如果比较大值大,说明第三个字是最大的,如果比较小值小,说明第三个数最小,如果处于中间,说明第三个数是中间的数字
代码示例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a ;
int b ;
int c ;
scanf("%d %d %d", &a, &b, &c);
int max, min;
if (a>b)
{
max = a;
min = b;
}
if (a < b)
{
max = b;
min = a;
}
if (c>max)
{
printf("%d %d %d", c, max, min);
}
if (c < min)
{
printf("%d %d %d", max, min, c);
}
else printf("%d %d %d", max, c, min);
system("pause");
return 0;
}
求两个数的最大公约数:
思路分析:短除法的代码体现
反思:函数命名不规范
代码示例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int zuidagongyueshu(int x, int y)
{
if (x%y == 0)
{
return y;//80%40==0,80和40的最大公约数就是40
}//80%70==10,此时继续求70和10的最大公约数,结果为10
//那么,10就是80和70的最大公约数
else return zuidagongyueshu(y, x%y);
}
int main()
{
int a, b;
scanf("%d %d", &a, &b);
int c=zuidagongyueshu(a, b);
printf("%d", c);
system("pause");
return 0;
}