C语言分支与循环(12)--- 练习题
  uUWKQE7Avyk4 2023年11月02日 90 0

一.练习题

1.给定两个数,求这两个数的最大公约数,如求24与18的最大公约数

方法:

假设m=24 n=18

1.将24与18进行取模,得到的结果是商1,余数为6,有余数证明并没有被整除

2.将18再模6,可以得到商3余0,所以我们可以得到6是我们的最大公约数

3.如果声明一个变量r来接收数据,如果r=0则代表n为最大公约数,如果r不等于0,我们则继续需要进行取模,将r的值赋值给n,将n的值赋值给m,也就是n=6 m=18,随后再让m与n进行取模运算,得到商3余0,这时候n就为最大公约数

这种方法称为:辗转相除法

所以可以将代码写成以下形式:

#define _CRT_SECURE_NO_WARNINGS 1
#include<windows.h>
#include<stdio.h>
int main(void)
{
	int m=24, n=18;
	int r;
	while (m%n){
		r = m%n;
		m = n;
		n = r;
	}
	printf("最大公约数是:%d\n",n);
	system("pause");
	return 0;
}

对上面的代码进行修改,让用户来输入两个值,则代码可以写成如下形式:

#define _CRT_SECURE_NO_WARNINGS 1
#include<windows.h>
#include<stdio.h>
int main(void)
{
	int m, n;
	int r;
	scanf("%d%d", &m, &n);
	while (m%n){
		r = m%n;
		m = n;
		n = r;
	}
	printf("最大公约数是:%d\n",n);
	system("pause");
	return 0;
}

程序运行的结果如图所示:

C语言分支与循环(12)--- 练习题_练习

C语言分支与循环(12)--- 练习题_分支_02


2.写一段代码输出从1900~2023年的闰年

我们知道闰年是4年一次,能被400整除,且不能被100整除,则我们可以用取模的方法,将年数能被4与400整除与不能被100整除的年份输出,根据这个思路我们可以得出以下代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<windows.h>
#include<stdio.h>
int main(void)
{
	for (int year = 1900; year <= 2023; year++){
		if (year % 4 == 0 && year % 100 != 0){
			printf("%d ",year);
		}
		else if (year % 400 == 0){
			printf("%d ",year);
		}
	}
	system("pause");
	return 0;
}

以下是程序运行的截图:

C语言分支与循环(12)--- 练习题_练习_03


3.写一段代码输出100-200之间的素数

示例代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<windows.h>
#include<stdio.h>
int main(void)
{
	int j  = 0;
	for (int n = 100; n <= 200;n++){
		for ( j = 2; j < n; j++){
			if (n % j == 0){
				break;
			}
		}
		if (j == n){
			printf("%d ", n);
		}
	}
	system("pause");
	return 0;
}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
uUWKQE7Avyk4