用C语言实现:给定两个整型变量的值,将两个值的内容交换;求10个整数中的最大值;将三个数从大到小输出;求两个数的最大公约数

用C语言实现:给定两个整型变量的值,将两个值的内容交换(不使用临时变量);求10个整数中的最大值(由键盘输入);将三个数从大到小输出;求两个数的最大公约数

大家以后千万不要像我一样积累程序,当天的事情尽量当天完成,明日还有别的事情做呢,养成一个良好习惯,及时巩固哦~

1.给定两个整型变量的值,将两个值的内容交换

(1)使用临时变量,来完成值的交换
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a, b, t=0;	
	scanf("%d%d", &a, &b);
	printf("a=%d b=%d\n", a, b);
	t = a;
	a = b;
	b = t;
	printf("a=%d b=%d\n", a, b);
        system("pause");
	return 0;
}
(2.1)不使用临时变量-----加减法
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	a = a +b;
	b = a - b;
	a = a - b;
	printf("%d %d\n", a, b);
	system("pause");
	return 0;
}
(2.2)不使用临时变量-----异或法(二进制按位异或)
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a;
	int b;
	scanf("%d%d", &a, &b);
	a = a^b;
	b = a^b;
	a = a^b;
	printf("%d %d\n", a, b);
	system("pause");
	return 0;
}

2.求10个整数中的最大值

(1)数组已给出
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdlib.h>
#include<stdio.h>
int main()
{
	int arr[] = { -1, 2, -3, 8, -9, 56, -7, -4, 15, 86 };
	int max = arr[0];
	int i = 0;
	for (i = 1; i < 11; i++)
	{
		if (arr[i]>max)		
			max = arr[i];		
	}
	printf("max = %d\n", max);
	system("pause");
	return 0;
}
(2)数组内容由键盘输入
#include<stdlib.h>
#include<stdio.h>
int main()
{
	int arr[10] = {0};
	int max = 0;
	int i = 0;
	max = arr[0];
	for(i = 0;i < 10;i++)
	{
		scanf("%d",&arr[i]);
	}
	for(i = 0;i < 10;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
	for(i = 1;i < 10;i++)
	{
		if(max < arr[i])
		{
			max = arr[i];
		}
	}
	printf("max = %d\n",max);
	return 0;
}

3.将三个数从大到小输出

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
                printf("%d %d %d\n", a, b, c);
	int max, min;
	if (a > b)
	{
		max = a;
		min = b;
	}
	else
	{
		max = b;
		min = a;
	}
	if (c > max)
	{
		printf("%d %d %d\n", c, max, min);
	}
	else if (c < min)
	{
		printf("%d %d %d\n", max, min, c);
	}
	else
	{
		printf("%d %d %d\n", max, c, min);
	}
	system("pause");
	return 0;
}

4.求两个数的最大公约数

(1)短除法:逐步找出两个数的所有公约数,再把这些数累乘起来。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a, b, t, i;
	scanf("%d%d", &a, &b);
	t = 1;
	for (i = 2; i <= a && i <= b; i++)
	while (a%i == 0 && b%i == 0)
	{
		t = t*i;
		a = a / i;
		b = b / i;
	}
	printf("%d\n", t);
	system("pause");
	return 0;
}
(2)辗转相除法:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a, b, c = 0;	//a,b的大小不用比较
	scanf("%d %d", &a, &b);
	while (a%b != 0)
	{
		c = a%b;
		a = b;
		b = c;
	}
	printf("%d\n", b);
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值