前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >c语言必会题目

c语言必会题目

作者头像
用户11317877
发布于 2024-10-16 05:58:33
发布于 2024-10-16 05:58:33
12600
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

本次为大家罗列了一些c语言一些最基础的编程题,也是学习c语言基础部分所必须.

1.求最大公约数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main() {

	int a = 24;
	int b = 18;
	int c = a % b;
	while (c != 0) {//这里推荐辗转相除法
		a = b;//把除数赋值给被除数
		b = c;//把余数赋值给除数
		c = a % b;
	}
	printf("%d\n", b);//此时结果为6
	return 0;
}

代码讲解: 比如求24和18的最大公约数,我们可以使用辗转相除法来求,假设a,b,c三个变量,把被除数24赋值给a,把除数18赋值给b,相除的余数a%b赋值给c,经过一轮相除,我们可以知道余数为6,此时我们把b的值赋值给a,再把c赋值给b,在进行一轮相除,此时余数为0,我们再把b的值赋值给a,c的值赋值给b,而c等于0,此时b的值为两数的最大公约数,其本质就是让除数和余数辗转相除,直到余数为0,此时除数就是最大公约数.

2.求素数

打印100~200之间的素数 素数的定义:只能被1和他本身的整除的数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
#include<math.h>
int main() {
	for (int i = 101; i < 200; i+=2) {//偶数一定不是素数
		int flag = 1;//假设是素数
		for (int j = 2; j <= sqrt(i); j++) {//sqrt()为开平方
			if (i % j == 0) {
				flag = 0;
				break;
			}
			
		}
		if (flag == 1) {
			printf("%d ", i);

		}
	}
	
	return 0;
}

代码讲解: 我们可以使用嵌套循环,第一个循环来遍历100-200之间所有的整数,第二个循环来判断这个数是否为素数,可以遍历2到这个数本身的数中间能否被整除,如果可以就一定不是素数,此时我们可以直接跳出循环,判断下一个数字,如果第二层循环到它本身都没有被整除,则次数为素数. 代码优化:1.我们知道一个数有两因子,一定有一个大于它的开平方,有一个小于它的开平方,所以我们只需遍历到开平方即可,因为如果在它的开平方之前没有被整除,则之后就一定不能被整除.2.偶数一定不是素数,我们可以直接跳过

3.求闰年

打印1000年到2000年之间的闰年

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main() {
	int count = 0;
	for (int i = 1000; i <= 2000; i++) {
		int j = i;
		if (j % 400 == 0) {//被400整除
			printf("%d ", j);
			count++;
		}
		if (j % 4 == 0 && j % 100 != 0) {//被4整除但不能被100整除
			printf("%d ", j); 
			count++;
		}
	}
	printf("\n闰年有%d个\n",count);
	return 0;
}

代码讲解: 我们只需遍历1000到2000之间的数字,判断是否为闰年

4.打印九九乘法表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main() {
	for (int i = 1; i <= 9; i++) {
		for (int j = 1; j <= i; j++) {
			printf("%d * %d = %2d", j, i, i * j);
		}
		printf("\n");
	}
	return 0;
}

猜拳小游戏

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void play() {
	int r = rand() % 100 + 1;
	int num = 0;
	while(1){
		printf("请输入数字\n");
		scanf("%d", &num);
		if (num > r) {
			printf("猜大了\n");
		}
		else if (num < r) {
			printf("猜小了\n");
		}
		else {
			printf("恭喜您猜中了\n");
			break;
		}
	}

}

int main() {
	int input = 0;
	srand((unsigned int)time(NULL));
	do {
		printf("***************\n");
		printf("****1.play*****\n");
		printf("****0.exit*****\n");
		printf("***************\n");
		scanf("%d", &input);

		switch (input) {
		case 1:printf("开始游戏\n");
			play();
			break;
		case 0:printf("结束游戏\n");
			break;
		default:printf("输入错误,请从新输入");
			break;
		}

	} while (input);
	return 0;
}

输入输出函数中*号的含义

printf函数

"*"的含义

限定最小宽度和小数位数这俩个限定值时,可以用"*"代替.

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
	printf("%*.*f\n",6,2,0.5);	
	return 0;	
return 0;
}
//等价于printf("%6.2f\n",0.5);

scanf函数

"*"的含义

scanf()提供了一个赋值忽略符*,只要把*加在任何占位符的百分号后面,该占位符就不会返回值,解析后直接被丢弃.

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int year = 0;
	int month = 0;
	int day = 0;
	scanf("%d%*c%d%*c%d", &year, &month, &day);
	printf("%d-%d-%d", year, month, day);
	return 0;
}

本段代码中输入的字符数据将不会被读取 输入:2024/3/23 输出:2024-3-23

上面实例中,%*c就是在占位符的百分号后面,加入了赋值忽略符,这个占位符没有对应的变量,解读后不必返回.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言初阶小练习1(1.素数的打印,2.闰年的判断和打印,3.求解两个数的最大公约数)
"试除",就是不断地尝试能否整除。比如要判断自然数 x 是否质数,就不断尝试小于 x 且大于1的自然数,只要有一个能整除,则 x 是合数;否则,x 是素数。
折枝寄北
2024/11/19
710
C语言初阶小练习1(1.素数的打印,2.闰年的判断和打印,3.求解两个数的最大公约数)
计算机小白的成长历程——分支与循环(7)
大家好,很高兴又能和各位见面了。咱们今天的内就是写代码,通过不同的题目进行代码编写来提高我们的编写能力以及对知识点的理解。下面开始咱们今天的题目。
蒙奇D索隆
2023/10/13
2340
计算机小白的成长历程——分支与循环(7)
C语言经典习题100例(四)16-20
给大家介绍一堂Python入门课https://www.bilibili.com/video/BV1RZ4y1n75v,感觉还不错,适合初学者入门。
cutercorley
2020/07/23
4950
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
再将上一次计算中的除数作为被除数,余数作为除数,再进行除法运算求余数
倔强的石头
2024/12/06
2080
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
C语言:求两个数的最大公约数和最小公倍数
求两个数的最大公约数:“辗转相除法”: 设两数为a和b(a>b),用a除以b,得a÷b=商…余数,若余数为0 ,则最大公约数为b;若余数不为0 ,则再用b÷余数, 得b÷余数=商1…余数1,若余数1=0,则最大公约数为余数,若余数1不为0,继续让商÷余数n,一直到能够余数为零 这时的除数即最大公约数。 求两个数的最小公倍数: 最小公倍数=两数的乘积÷最大公约数
全栈程序员站长
2022/08/27
6070
函数和数组的混合使用例子
一般我们求最大公约数可以使用辗转相除法,求出最大公约数之后,我们可以用最大公约数x最小公倍数==两个数的乘积来计算最小公倍数。
用户11352420
2024/11/07
970
函数和数组的混合使用例子
C语言练习之求最大公约数
求两个数的最大公约数是一个很基础的数学问题,今天我来和大家分享用C语言求两个数的最大公约数的三种方法。
摘星
2023/04/28
4050
C语言练习之求最大公约数
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
基本原理:for循环是一种常用的循环结构,它允许您指定一个初始化表达式、一个循环条件和一个更新表达式。语法格式为for(初始化表达式; 循环条件; 更新表达式)。初始化表达式在循环开始时执行一次,用于初始化循环变量。循环条件在每次循环迭代开始时进行检查,如果为真,则执行循环体中的代码。更新表达式在每次循环体执行完后执行,用于更新循环变量。
Rossy Yan
2025/01/13
1730
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
C语言题解——最小公倍数的三种求法(含最大公约数)
  最小公倍数是指能同时将两数整除的最小倍数,而最大公约数是则是能被两数同时整除的最小因数。最小公倍数有个特点,就是最小为两数中的较大值,最大为两数的乘积;最小公倍数则是最小为1,最大为两数中较小值(如果两数相同,那么最大公约数、最小公倍数是它们本身)🎉🎉🎉
北 海
2023/07/01
8920
C语言题解——最小公倍数的三种求法(含最大公约数)
辗转相除法
辗转相除法,也被称为欧几里得算法,是一个用于求两个整数最大公约数(GCD)的经典算法。其理论基础主要基于以下两个原理:
ljw695
2024/10/18
3200
【C语言】题集 of ⑥
🚀write in front🚀    📝个人主页:打打酱油desu_泽En_CSDN博客 🆔本文由 泽En 原创 CSDN首发🐒 如需转载还请通知⚠ 🏅2021年度博客之星物联网与嵌入式开发TOP5→作者周榜56→总排名3255🏅  📣系列专栏:【C】题目_打打酱油desu-CSDN博客 💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊 ✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 ♐  目录 🚀write in front🚀    ✨第二十六题→实现N的阶层
謓泽
2022/12/12
1.1K0
C语言编程笔试题(二)
  好的,我们可以根据上图的思考过程和百度百科的介绍了解,知道了求最大公约数的过程。
RAIN7
2021/08/11
7640
c语言最大公约数怎么求算法_最小公倍数c语言算法
1.选出a,b中最小的一个数字放到c中 2.分别用a,b对c求余数,即看是否能被c整除 3.直到a,b同时都能被c整除 4.如不能整除,c– (c的值减一) 继续从2开始执行 5.也就是说该循环的判断条件为 a,b能否同时被c整除,只要有一个数不能被c整除,循环继续执行
全栈程序员站长
2022/11/15
1.2K0
c语言最大公约数怎么求算法_最小公倍数c语言算法
萌新小白必做题(1):找两数间的最大公约数与最小公倍数
如果a>b,则a和b与a-b和b的最大公约数相同,即Gcd (a, b) = Gcd (a-b, b) 性质2 如果b>a,则a和b与a和b-a的最大公约数相同,即Gcd (a, b) = Gcd (a, b-a) 性质3 如果a=b,则a和b的最大公约数与a值和b值相同,即Gcd (a, b) = a = b
对编程一片赤诚的小吴
2024/01/23
1630
C语言小游戏——3、寻找大公约和小公倍的多种求法
什么是最大公约数呢?定义如下: 如果数 a 能被数 b 整除,a 就叫做 b 的倍数,b 就叫做 a 的约数。几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。
用户11015888
2024/03/11
950
C语言-阶乘-九九乘法口诀表-最大公约数-闰年
这里使用试除法 什么是质数(素数):如果一个数,除了1和它本身之外不能被其他数所整除,那么这个数就是质数(素数)。 例如:13,只能被1和13整除,所以13就是质数
半生瓜的blog
2023/05/12
3570
C语言求最小公倍数和最大公约数三种算法(经典)
最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接 求最小公倍数算法: 最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法: (1)辗转相除法 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行① 例如求27和15的最大公约数过程为: 27÷15 余1215÷12余312÷3余0因此,3即为
Angel_Kitty
2018/04/08
4.6K0
小知识:什么是「欧几里得算法」
短除法是求最大公因数的一种方法:先把每个数的因数找出来,然后再找出公因数,最后在公因数中找出最大公因数。
五分钟学算法
2019/05/17
1.5K0
C语言经典编程题100例 11~20
11、题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
C you again
2022/08/22
2.1K0
C语言经典编程题100例 11~20
求最大公约数和最小公倍数的算法[通俗易懂]
辗转相除法又称为欧几里德算法。这个方法大家已经都已经在数学上学过了。具体的步骤就是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。最后的除数就是这两个数的最大公约数。举个例子就是:比如两个数字,x=453,y=36;
全栈程序员站长
2022/08/27
1.1K0
推荐阅读
相关推荐
C语言初阶小练习1(1.素数的打印,2.闰年的判断和打印,3.求解两个数的最大公约数)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验