首页 > 其他分享 >C语言分支与循环(12)--- 练习题

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

时间:2023-07-29 23:31:40浏览次数:36  
标签:练习题 12 int 18 代码 C语言 最大公约数 整除 include

一.练习题

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;
}


标签:练习题,12,int,18,代码,C语言,最大公约数,整除,include
From: https://blog.51cto.com/u_16183773/6896498

相关文章

  • (AtCoder Beginner Contest 312)
    (AtCoderBeginnerContest312)A-Chord#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong//#defineint__int128typedefpair<int,int>PII;typedefpair<string,int>PSI;typedefpair<string,string>PSS;constintN......
  • keil5使用TM4C123芯片时遇到的问题
    问题1keil无法加载这个文件lmidk-agdi.dll在MDKv5.29以及较新版本的MDK中,已删除对StellarisICDI调试适配器的支持,这将导致此类调试器DLL错误。需要下载一个MDK附件来继续支持StellarisICDIhttps://documentation-service.arm.com/static/60509bd61da8f8344a2ca1bf?token=......
  • c语言预处理详解
    //externintADD(intx,inty);//声明引用外部文件//c语言预处理//文本文件翻译+链接二进制文件运行//test.cpp————————》test.exe————————》//编译器翻译环境链接器执行环境//test.obj(目标文件)////(linux系统)翻译器:/......
  • 12-MapReduce(4)
    1.Job提交源码追踪1.1MR程序入口方法作为使用Java语言编写的MapReduce程序,其入口方法为main方法。在main方法中,使用了ToolRunner启动运行了MapReduce客户端主类,其逻辑实现定义在run方法中。publicstaticvoidmain(String[]args)throwsException{//......
  • C语言中.与->的用法介绍
    (一)基础结构体用点,结构体指针用箭头。a->b 的含义是 (*a).b****。  现代的标准化的C语义上来说, -> 可以用 * 和 . 的组合实现。简单的说,就是一个快捷方式,一个语法糖。(二)例子在机器码和汇编的角度来看,不存在变量,不存在struct这种东西,只存在寄存器和一个叫做内存的大数......
  • C语言字符串的常用操作
    C语言是一种非常流行的编程语言,它支持各种数据类型,包括整数、浮点数、字符和字符串等。在C语言中,字符串是一种特殊的数据类型,它由一系列字符组成,以\0字符结尾。本文将介绍C语言中字符串的相关知识,包括字符串的定义、初始化、赋值、输入输出、比较、拼接、查找和替换等。一、字符......
  • 【C语言趣味教程】(4) 变量:代码注释 | 变量的声明 | 初始化与赋值 | 变量的命名 | 关
    Ⅰ.代码注释(Comment)0x00引入:注释的作用"程序员最讨厌两种人:一种是不写注释的人,一种是让我写注释的人。"相信大家对注释早已有所耳闻,对于注释,C语言有两种注释风格,我们下面会逐个讲解。 但在这之前,我们先来了解了解注释的作用,注释就是用于解释代码的文字的。注释通常用于版本、版......
  • c语言作业之登录账号
    intmain(){ inti=0; charpassword[20]={0}; for(i=0;i<3;i++) { printf("请输入密码:>"); scanf("%s",password); //if(password=="123456");//err,==不能用来比较两个字符串是否相等,应该使用一个库函数strcmp if(strcmp(password,......
  • c语言学习第一课
    VS工具提前输入#define_CRT_SECURE_NO_WARNINGS1数据类型char //字符数据类型short//短整型int  //整型long //长整型longlong //更长整型float //单精度浮点数double //双精度浮点数 printf(“%lf\n",d);   lf表示双精度浮点数类型用来向内存申请空间创......
  • VsCode如何配置C语言环境?
    以前学校上C语言课程都是使用VC++6.0上课,这个学期为了复习一遍C语言,而且自己经常使用VSCode开发前端项目,所以为了方便。这里把需要的环境和插件配置在这里介绍一下。Windows环境下安装C语言编译器MinGW-W64GCCC的下载地址为:https://sourceforge.net/projects/mingw-w64/下载......