2022年3月PAT乙级(C语言)满分代码+题解+考试思路梳理

Java刷题党必看:PTA平台PAT乙级115道真题全解析(附避坑指南) 本文为Java开发者提供了PTA平台PAT乙级115道真题的全面解析与高效刷题指南。文章深入剖析了字符串处理、数组排序、数学模拟等核心考点,并分享了输入输出优化、性能调优及常见“避坑”技巧,旨在帮助读者用Java思维高效解题,巩固编程基础,顺利通过考试。 阅读详情

第一次参加pat,本来报的是甲级,但是因为以前没有数据结构基础,同时C语言也没系统学习过,只会一点java和python,无奈之下只好先报名乙级练手。

7-1 暴力破解 (15 分)

旅行箱上的密码锁通常都只有 3 位数字,如果忘了密码,只要有足够的耐心,哪怕用逐一枚举的办法,也可以暴力破解。如果还能隐约记得数字的范围,则可以大大降低破解的工作量。

本题就请你根据用户记忆中的数字范围,列出所有可能的密码。

输入格式:

输入第一行给出一个正整数 n(≤8),随后一行列出 n 个 0 - 9 范围内的数字,是用户记忆中可能属于密码的数字。题目保证 n 个数字没有重复,数字间以空格分隔。

输出格式:

按照密码组成的 3 位数从小到大的顺序,输出这 n 个数字能组成的所有可能的 3 位数密码。要求每行输出 10 个,同行数字以 1 个空格分隔,行首尾不得有多余空格。注意:如果有前导零,也不可忽略。

输入样例:

3
5 2 8

输出样例:

222 225 228 252 255 258 282 285 288 522
525 528 552 555 558 582 585 588 822 825
828 852 855 858 882 885 888

这一题解法和标题一样,暴力即可,先排序再逐个输出,注意空格和换行。

AC代码:

//从小到大,每行10个,前导零不可忽略
#include <stdio.h>
#include <stdlib.h>

int cmp(const void *a,const void *b){ //比较函数
	return *(int *)a-*(int *)b;
}

int main(){
	int num,number[10]={0},cnt=0;
	scanf("%d",&num);
	for(int i=0;i<num;i++)
		scanf("%d",&number[i]);
	qsort(number,num,sizeof(number[0]),cmp); //排序
	for(int i=0;i<num;i++){
		for(int j=0;j<num;j++){
			for(int k=0;k<num;k++){ //秘技:三重循环,分别输出三位数的百、十、个位数
				printf("%s%d%d%d",cnt?" ":"",number[i],number[j],number[k]);
				cnt++;
				if(cnt==10){
					printf("\n");
					cnt=0;
				}
			}
		}
	}
	return 0;
}

​

7-2 学霸 (20 分)

所谓“学霸”,就是每个学期选课学时最长的人。本题就给你所有课程的学时和选课名单,请你找出那个学霸。如果有总学时并列最多的情况,则选那个选课门数最多的。如果还有并列,就按学号升序输出他们吧~

输入格式:

输入在第一行中给出一个正整数:N(≤5000)为课程总数。随后 N 行,每行给出一门课的选课信息,格式如下

学时 人数 选课人1 选课人2 ……

其中 学时 是该课程的学时,一个不超过 100 的正整数;人数 是该课程的选课人数,为不超过 200 的非负整数;选课人i 是第 i 个选课学生的编号,是一个 5 位数字。题目保证不同学生对应的编号不同,且同一门课程的选课名单中没有重复的学生。

输出格式:

首先在一行中输出学霸(们)的选课总学时和门数,随后在下一行中按照编号升序输出所有满足题面描述的学霸。编号间以 1 个空格分隔,行首尾不得有多余空格。题目保证至少存在一位学霸。

输入样例:

5
32 5 10001 00003 91032 02387 10993
64 2 36775 91032
16 3 10993 02387 36775
16 4 02387 56772 10993 00003
32 3 10993 02387 88024

输出样例:

96 4
02387 10993

这一题居然是卡了我最久的题目,因为我之前的思路是用变量记录学霸个数,每次读入学霸学号后就循环一遍,相同的直接加上学时和门数,都不同就直接新增一个学霸,但这个思路就导致了最后一个测试点超时,偏偏我当时脑子一糊就压根没想起来我在结构体里面已经记录了学霸的学号,压根不需要管有多少个学霸。

所以这道题我的思路就是用两个结构体数组分别存储课程信息和学霸信息,每次读入学霸信息直接就在数组下标为学霸学号的结构体内加上学时和门数,最后qsort排序即可。

AC代码:

//学时最多找门数最多,还有并列则以学号升序
//按照编号升序输出所有满足描述

#include <stdio.h>
#include <stdlib.h>

//存储课程信息
struct kecheng {
	int xueshi, renshu;
	int xuankeren[201];
} n[5001];

//存储学霸信息并定义一个足够大的数组
struct xueba {
	int bianhao, xueshi, mengshu;
} x[100001];

//比较函数,注意题目要求
int cmp(struct xueba *a, struct xueba *b) {
	if (a->xueshi != b->xueshi)
		return (b->xueshi - a->xueshi);
	else if (a->mengshu != b->mengshu)
		return b->mengshu - a->mengshu;
	else
		return a->bianhao - b->bianhao;
}

int main() {
	int num, cnt = 0;
	scanf("%d", &num);
	x[cnt].mengshu = 0;
	x[cnt].xueshi = 0;
	for (int i = 0; i < num; i++) {
		scanf("%d %d", &n[i].xueshi, &n[i].renshu);
		for (int j = 0; j < n[i].renshu; j++) {
			int flag = 0;
			scanf("%d", &n[i].xuankeren[j]);
			//直接在学号对应的数组下标的结构体里面加上学时和门数,并记录学号
			x[n[i].xuankeren[j]].bianhao = n[i].xuankeren[j];
			x[n[i].xuankeren[j]].mengshu++;
			x[n[i].xuankeren[j]].xueshi += n[i].xueshi;
		}
	}
	qsort(x, 100001, sizeof(x[0]), cmp);
	//题目保证至少存在一位学霸,所以直接输出第一个就好
	printf("%d %d\n", x[0].xueshi, x[0].mengshu);
	printf("%05d", x[0].bianhao);
	//如果有相同的学时和门数也输出,直到有不相同为止
	int m = 1;
	while (x[m].mengshu == x[m - 1].mengshu && x[m].xueshi == x[m - 1].xueshi) {
		printf(" %05d", x[m].bianhao);
		m++;
	}
	return 0;
}

7-3 排课 (20 分)

排课是个世界难题。

假设每个学期有 N 个教学班的课需要排,每周有 M 个时间段可以上课,全校共有 K 间教室,不同排课组合方案的个数可能会超过整个宇宙的质子数。更为复杂的是,每个学期排课前,学校还会收集每个教学班任课老师不能上课的时间段,还要保证排课不与老师的时间安排起冲突。

当然,本题不是要求你实现一个排课算法,而是要求你实现一个排课方案检查算法。即给定每个教学班上课的时间和地点,你需要检查这个时间段和地点是否只有这一个班上课,并且这个上课时间不会正好是任课老师不能上课的时间。

输入格式:

输入在第一行中给出三个正整数:N(≤10^4)为教学班总数;M(≤40)为一周内上课时间段的个数;K(≤10^3)为教室总数。数字间以空格分隔。以下我们就将教学班、时间段、教室分别从 1 开始顺序编号。

随后 N 行,每行给出一个教学班的任课教师时间限制和排课的信息。格式如下:

L T[1] ... T[L] Time Room

其中 L 是任课教师的时间限制数量(<M),后面给出 L 个该老师不能上课的时间段编号;Time 是该教学班安排的上课时间段编号,Room 是上课教室编号。我们假设每个教学班的任课老师都不一样。

输出格式:

如果给定的课表安排是完全无冲突的,则在一行内输出:Perfect Arrangement for N classes! 其中 N 是教学班数量。

如果课表有冲突,则需要输出冲突原因。我们首先假设教学班是按照编号递增序进行排课的,教学资源先到先得。如果后面安排的教学班 A 跟前面的教学班 B 排在了同一个时间和地点,则在一行中输出 ERROR: Conflict between A and B.,此时教学班 A 暂不安排。如果教学班 A 的上课时间跟任课教师有冲突,则在一行中输出 ERROR: Conflict with instructor for A.。当两种冲突都发生时,分两行输出,先输出教学班冲突的信息。

输入样例 1:

5 20 10
2 1 5 10 7
0 10 3
5 2 4 6 8 10 3 3
3 10 3 18 15 1
1 20 19 10

输出样例 1:

Perfect Arrangement for 5 classes!

输入样例 2:

5 20 10
2 1 5 10 7
0 10 7
5 2 4 6 8 10 6 3
3 10 3 18 6 3
2 20 10 10 7

输出样例 2:

ERROR: Conflict between 2 and 1.
ERROR: Conflict with instructor for 3.
ERROR: Conflict between 5 and 1.
ERROR: Conflict with instructor for 5.

 这道题的思路比较清晰,题目已经给出了要求,教师上课的时间段不能是他不能上课的时间段,这里可以用bsearch函数快速查找;教师上课的教室也不能与其他教师的教室在同一时间段上课,注意是先比较教室再比较时间段,如果有冲突就不安排上课,但在不安排上课前必须将上述条件都校验一遍。

AC代码:

//时间段不与前L个输入冲突,教室不能在同一时间段有两个或以上的教师在上课
#include <stdio.h>
#include <stdlib.h>

//存储教师信息
struct kb {
	int L, T[50], time, room;
} k[10001];

int cmp(const void *a, const void *b) {
	return *(int *)a - *(int *)b;
}

int main() {
	int N, M, K,all=0;
	scanf("%d %d %d", &N, &M, &K);
	for (int i = 0; i < N; i++) {
		scanf("%d", &k[i].L);
		int flag=0,flagg=0;
		for (int j = 0; j < k[i].L; j++)
			scanf("%d", &k[i].T[j]);
		scanf("%d %d", &k[i].time, &k[i].room);
		qsort(k[i].T, k[i].L, sizeof(k[0].T[0]), cmp);//每次读入一个教师的不能上课时间段数组之后就排个序,方便用bsearch查找
		if (i) {
			for (int m = 0; m < i; m++) {
				if (k[i].room == k[m].room && k[m].time == k[i].time) {//校验是否存在教室冲突
					printf("ERROR: Conflict between %d and %d.\n", i+1, m+1);
					flag=1;
					all=1;
				}
			}
		}
		if(bsearch(&k[i].time,k[i].T,k[i].L,sizeof(k[0].T[0]),cmp)){//校验是否存在时间冲突
			printf("ERROR: Conflict with instructor for %d.\n",i+1);
			flagg=1;
			all=1;
		}
		if(flag || flagg){//必须先将两个条件都检验一遍才能初始化
			k[i].time=-1*i;
			k[i].room=-1*i;
		}
	}
	if(!all)
		printf("Perfect Arrangement for %d classes!",N);
}

7-4 简易测谎 (20 分)

测谎通常使用一套准备好的问题提问被测试者,通过分析被测试者的反应得到结果。比较高级的测谎技术会使用测谎仪,监视被测试者的生理活动状况。我们这里的简易测谎则是通过对问题答案的特征分析来做出判断。

首先我们要求被测试者做完 N 道单选题,每道题有 8 个选项,由小写英文字母 a - h 来表示。这样就得到一个长度为 N 的、由 a - h 小写英文字母组成的字符串。对每个字符串打分,得分超过某个给定阈值 T 的就判断为“疑似说谎者”。打分原则如下:

  • 以 f 开头的,得分 −2;
  • 以 a 结尾的,得分 −1;
  • 对于每一段长度大于 5 的连续选择同一字母的最长子串,得分 +3;
  • a 后面紧跟 e 或 h 的,得分 −4;
  • 对于每一段长度大于 3 的连续选择相邻递增字母的最长子串(例如 abcd 或 defgh),得分 +5。

本题就请你写程序完成对被测试者的判断。

输入格式:

输入第一行给出 3 个正整数:N(6≤N≤100)为测谎问卷的题目数;T (≤100)为判断说谎的得分阈值;K(≤100)为被测试者人数。

随后 K 行,每行给出一个被测试者的答案字符串。

输出格式:

对每个被测试者的答案,在一行中输出其得分。如果分数超过阈值,则在其分数后输出 !!!。

输入样例:

12 1 6
fghaebcdeddd
ahhhhhhgbaaa
cdefffffffff
fffffghecaaa
feeeeeeeegcb
aaaaaabbbbbb

输出样例:

-1
-2
8!!!
-3
1
6!!!

这道题也是条件比较清楚的题,但要注意在比较字符串中某个字符和后一个字符后,即退出while循环后,i实际上已经向后移了一位,比如aaaaaabbbbbb这个字符串在退出while循环后i所指的字符其实是第一个b,如果不处理,在循环体的i++后,i会指向第二个b。

 AC代码:

#include <stdio.h>
#include <string.h>

int main() {
	char problem[101] = {0};
	int num, T, K;
	scanf("%d %d %d", &num, &T, &K);
	getchar();
	while (K--) {
		int score = 0;
		gets(problem);
		if (problem[0] == 'f')
			score -= 2;
		if (problem[strlen(problem) - 1] == 'a')
			score -= 1;
		for (int i = 0; i < strlen(problem)-1; i++) {
			int cnt = 1, recnt = 1, flag = 0;
			if (problem[i] == 'a' && (problem[i+1] == 'e' || problem[i+1] == 'h'))
				score -= 4;
			while (problem[i] == problem[i + 1]) {//如果存在连续相同字符
				flag = 1;
				cnt++;
				i++;
			}
			if (cnt > 5)
				score += 3;
			while (problem[i+1] - problem[i] == 1) {//如果存在递增字符
				recnt++;
				i++;
				flag = 1;
			}
			if (recnt > 3)
				score += 5;
			if (flag)//如果不进行i--,循环体的i++会再将i后移一位
				i--;
		}
		if (score > T)
			printf("%d!!!\n", score);
		else
			printf("%d\n", score);
	}
	return 0;
}

7-5 前K大数 (25 分)

本题目标非常简单:给定 N 个整数,找出前 K 个最大的数,并按递减序输出。

输入格式:

输入第一行给出 2 个正整数 N (≤10^6) 和 K (≤5)。随后一行给出 N 个整数键值,范围在区间 [−2^30,2^30] 内,以空格分隔。

输出格式:

按递减序在一行中输出前 K 个最大的数。

注意:一行中输出的数字间须以 1 个空格分隔,行首尾不得有多余空格。

输入样例 1:

10 4
40 25 60 -15 30 -21 80 -1 -5 27

输出样例 1:

80 60 40 30

输入样例 2:

4 5
23 -17 99 1

输出样例 2:

99 23 1 -17

这道题要特别注意时间限制和内存限制,我因为没有注意这点直接读入所有数字然后qsort,再输出前几个,果不其然内存超限了,而题目中K≤5其实也是提示,我们只需要创建一个内存为5的数组来存储前5个最大的就好了。

AC代码:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//插入函数
void Insert(long res[], long num) {
	for (int i = 0; i < 5; i++) {
		//如果读入的数字大于其中第i个数,则将i后面的数字全部后移一位,最后一位直接被覆盖就行
		if (num > res[i]) {
			for (int j = 4; j > i; j--)
				res[j] = res[j - 1];
			res[i] = num;
			break;
		}
	}
}

int main() {
	//注意数字是有负数的,不能初始化数组为0,为了保险我将它初始化为最小值
	long res[5] = {-1 * pow(2, 30)}, num;
	int N, K;
	scanf("%d %d", &N, &K);
	for (int i = 0; i < N; i++) {
		scanf("%ld", &num);
		Insert(res, num);
	}
	//要注意输入个数不足K个的情况,如果按K个直接输出会输出之前初始化的最小值
	for (int i = 0; i < ((N<K)?N:K); i++)
		printf("%s%ld", i ? " " : "", res[i]);
}

总结一下,第一次参加PAT多少还是有些紧张,练习的110题我全部做完了也没有多大把握,毕竟我的基础不咋好,不是科班专业,算法这一块没怎么接触过,但好在这一次的乙级题目比较友好,条件都给的很清楚没有特别坑的点,顺着题意写下去就好,但愿九月份的PAT甲级能取得好成绩。

PAT 乙级 知识点汇总 (持续更新) 文章目录1.未知循环次数2.字符串与数字相互转换第一种:sscanf()和sprintf():第二种:str1[i]-'0'ASCII码表:3.整型数中查找数字个数组成的新数4.字符串长度,与数字一起输入(输入带空格)5.整数相除的四舍五入,保留小数点 1.未知循环次数 参考1016 部分A+B(15 分): 用while(a!=0) 2.字符串与数字相互转换 第一种:sscanf()和sprintf(): (1)sscanf(str,"%d",&n):将str字符串以%d的格式传给n 阅读详情

相关推荐

PAT 乙级(Basic Level) 历年所有真题汇总(2013-2018)

PAT乙级历年所有真题汇总

ZedC1ang的博客 3737

真实的PAT乙级真题及思路详解(大部分对,非全满分,不断更新,不断思索更好的办法)

1001.害死人不偿命的(3n+1)猜想

weixin_38560644的博客 6828

PAT考试全攻略:从报名到刷题,零基础也能拿高分(附真题资源)

本文详细介绍了PAT考试的报名流程、备考策略和考试技巧,帮助零基础考生高效备考并取得高分。涵盖从基础语法复习到算法专题训练的全方位指导,并附赠真题资源,助力考生在求职和升学中脱颖而出。

weixin_28725553的博客 385

PAT乙级【Java题解合集】

超级全的PAT的JAVA题解

小羊不会飞的博客 3732

武汉大学计算机复试机试 2021-2024 备考:5道真题解析与 PAT 乙级 30 题针对性训练

本文详细解析武汉大学计算机复试机试2021-2024年的5道真题,并提供PAT乙级30题针对性训练方案。文章深入剖析机试考核特点与评分机制,包括代码可读性、解题思路和部分正确性得分要点,帮助考生高效备考。通过典型真题解析和应试技巧,结合精选的PAT乙级题目训练,提升考生的编程能力和应试策略。

weixin_30847939的博客 325

西北工业大学计算机考研上机考试真题分析与备考经验

计算机考研复试中,上机考试是检验代码实战能力的关键环节。与笔试侧重理论知识不同,机试通过在线评测系统(OJ)实时判定,要求考生在限定时间内完成算法设计、数据结构应用与C++编程。其技术价值在于精准筛选出能动手写代码的候选人,避免“纸上谈兵”。在高校考研复试、OJ刷题训练、编程竞赛等场景中,机试都扮演着重要角色。西北工业大学作为985高校,其计算机考研上机考试具有典型性,涵盖基础模拟、字符串处理、二叉树遍历、搜索图论、动态规划等题型。以西工大真题经验总结为线索,拆解机试规则、题目结构与备考策略,帮助考生系统掌

weixin_33849215的博客 321

PAT乙级资料集-2022.04.06

pat乙级代码 pat乙级代码_wen_zhi的博客-优快云博客 PAT乙级试题整理(二)——牛客网20分真题整理 PAT乙级试题整理(二)——牛客网20分真题整理_Dirichlet_zju的博客-优快云博客 PAT乙级题目答案汇总PAT (Basic Level) Practice (中文) PAT乙级题目答案汇总PAT (Basic Level) Practice (中文)_码不停Ti的博客-优快云博客_pat题目答案 PAT basic 练习题 C++ 代码合集及测试点

青少年趣味编程 3316

零基础自学C语言:从翁恺MOOC到实战项目的完整学习路径与避坑指南

C语言作为一门经典的编程语言,其核心在于理解计算机如何通过精确的指令序列处理数据。其工作原理基于变量、数据类型、运算符和流程控制等基本构件,通过函数实现模块化,利用数组和指针管理内存与数据。掌握C语言不仅能培养严谨的计算思维,更是学习操作系统、嵌入式开发等底层技术的基石。在工程实践中,从搭建开发环境、编写第一个程序,到实现简易计算器、通讯录管理等项目,是巩固语法和提升解决问题能力的关键。本文基于【翁恺MOOC课程】的学习实录,梳理了从【零基础】到掌握核心概念的完整路径,并总结了自学过程中常见的编译错误、指针

weixin_34195546的博客 315

PAT乙级历年真题汇总

PAT乙级历年真题汇总

2401_82790210的博客 1403

排课数学模型及其算法

排课数学模型及其算法:针对院校排课问题。建立多目标优化的数学模型,井对这一模型提出一种随机旋转遗传算法,使模型的求解 速度大大提高。为在不可遍历的可行域中,提供一种寻优的途径。

告别Sourceforge安装器!手把手教你下载MinGW-w64离线包并配置环境变量(Windows 10/11)

本文详细介绍了如何在Windows 10/11系统上通过下载MinGW-w64离线包并配置环境变量,完全绕过Sourceforge安装器的问题。从选择正确的版本、解压到本地目录,到设置系统环境变量和验证编译环境,手把手指导开发者快速搭建稳定的GCC编译环境,解决常见的安装困扰。

weixin_30896825的博客 337

2023年PAT乙级秋考 满分代码+题解+考试思路梳理

2023pat秋季乙级 满分代码和思路。

congyuyoudao的博客 1431

解决eNSP安装WinPcap版本冲突的完整指南

网络数据包捕获工具WinPcap是网络仿真环境的基础组件,其版本兼容性直接影响eNSP等网络模拟器的正常运行。当系统已安装新版WinPcap时,eNSP内置的旧版安装程序会因版本校验机制触发报错。通过彻底卸载现有驱动、安装特定版本WinPcap 4.1.2,并验证注册表和服务状态,可解决版本冲突问题。对于需要同时使用新版驱动的场景,可采用虚拟机隔离或Npcap兼容模式。该方案适用于Windows 10/11系统环境,涉及驱动签名、虚拟网卡等典型网络工程问题。

weixin_32612263的博客 339

【PAT】乙级刷题整理 C/C++

今天PAT乙级题目整理梳理一遍,方便查阅,有空会慢慢更新 均为C/C++代码: 1001 害死人不偿命的(3n+1)猜想(15分) 1002 写出这个数(20分) 1003 我要通过!(20分) 1004 成绩排名(20分) 1005 继续(3n+1)猜想(25分) 1006 换个格式输出整数(15分) 1007 素数对猜想(20分) 1008 数组元素循环右移问题(20分) 1009 说反话(20分) 1010 一元多项式求导(25分) 1011 A+B和C(15分) 1012 数字分类(20分) 101

weixin_43143173的博客 1632

利用Python实现纬度加权平均(即NCL中的wgt_areaave)

当处理全球数据的时候,最常见的分析就是全球、北半球平均了,这时候一定要注意要根据纬度等信息进行加权,求加权平均,要不然结果肯定会不准。但是对于Python中,常规的计算包里面是没有的,或许现在有其他包可以实现,也可以告诉我~。

记录基于python语言处理气象问题的一些代码,包括不限于气象数据读取、机器学习和深度学习建模。 5745

dq轴坐标系下的电路方程

dq轴坐标系下的电路方程 dq轴坐标系是一种常见的电路方程,但是再dq轴坐标系下电路元件的电压电流dq轴存在一定的耦合,本文针对三相电路推导了dq轴坐标系下的电路电路方程进行一个推导,首先先列出来派克变换的公式 派克变换 [AdAqA0]=23[cos⁡(θ)cos⁡(θ−2π/3)cos⁡(θ+2π/3)−sin⁡(θ)−sin⁡(θ−2π/3)−sin⁡(θ+2π/3)1/21/21/2][AaAbAc]\left[\begin{array}{c}A_d\\A_q\\A_0 \end{array}\ri

Mr.Young的博客 1万+

PAT乙级(1001~1050)

PAT乙级(1011~1050)

Giggins GaoBlog 674

构建基于知识图谱的金融监管合规系统

金融行业是一个高度监管的领域,金融机构需要遵守众多复杂的法规和政策。传统的金融监管合规方式往往依赖于人工审查和简单的规则引擎,效率低下且容易出错。构建基于知识图谱的金融监管合规系统的目的在于利用知识图谱强大的知识表示和推理能力,实现对金融业务数据的自动化分析和合规检查,提高监管合规的效率和准确性。本系统的范围涵盖了金融机构的各类业务,如银行业务、证券业务、保险业务等。

AI天才研究院 1168

PAT乙级1051复数乘法:测试点分析与浮点数精度处理实战

浮点数精度处理是编程中常见的技术挑战,尤其在涉及格式化输出时,微小的误差可能导致结果不符合预期。其原理源于计算机使用二进制浮点数表示实数,存在固有的精度限制。在工程实践中,正确处理浮点数精度对于保证程序健壮性和输出准确性至关重要,广泛应用于科学计算、金融系统和在线判题系统(OJ)中。以PAT乙级1051题为例,该题要求计算复数乘法并保留两位小数输出,核心难点在于处理四舍五入时可能产生的“-0.00”问题。通过引入阈值判断(如绝对值小于0.005时置零),可以系统性地规避浮点误差带来的格式错误,这体现了测试点

weixin_33816821的博客 459

嵌入式Linux&Android开发-TP调试

目录 一、修改DTS,添加新的I2C设备 二、修改Makefile,Kconfig 三、tp调试时的问题排查 一、修改DTS,添加新的I2C设备 &i2c4 { status = "okay"; clock-frequency = <400000>; gslX680@40 { compatible = "gslX680"; reg = <0x40>; touch-gpio = <&gp

嵌入式成长手册 572

【软件系统架构】系列十一:面向对象技术—sysML

摘要: SysML(系统建模语言)是UML的扩展,专为复杂系统工程设计,支持硬件、软件、人员等跨领域建模。其核心包括9种图:4种结构图(如块定义图BDD、内部块图IBD)、4种行为图(如活动图AD、序列图SD)和需求图(REQ),覆盖需求、结构、行为及参数约束。相比UML(面向软件),SysML精简图表(9 vs 13),强化需求追踪与性能分析(如参数图PD),并支持MBSE(基于模型的系统工程)。需求关系(如满足、验证、派生)在需求图中明确关联设计实现,形成闭环管理。SysML是UML的子集与系统工程扩展

moton2017的博客 1909

C语言学习全攻略:从入门到实战的优质网站与高效路径

C语言作为系统编程和底层开发的基石,其核心在于对内存、指针和编译原理的精准控制。理解指针操作、动态内存管理和编译链接过程,是掌握C语言的关键,这直接关系到程序的性能、稳定性和安全性。在工程实践中,这些知识对于开发操作系统、嵌入式系统和高性能服务器等场景至关重要。本文围绕C语言学习中的核心难点与高频需求,整合了交互式教程、在线判题系统(OJ)、权威参考手册及开源项目社区等关键资源,重点推荐了菜鸟教程、PAT、LeetCode、CppReference和GitHub等平台,并提供了针对指针可视化、调试技巧和项目

weixin_33290540的博客 300

10分钟搞定小红书爆款笔记爬取!Selenium模拟登录+数据解析全流程,新手也能落地

小红书爬虫实战的核心,是**“模拟真人操作+解析结构化数据”**——Selenium解决了动态页面和登录的问题,lxml解决了数据提取的问题,pandas解决了数据存储的问题。新手学爬虫不用一开始就啃复杂的反爬机制,先从这类“可见即可爬”的场景入手,掌握“模拟操作→数据解析→数据保存”的全流程,再逐步叠加异常处理、批量爬取、反爬应对等功能。需要注意的是:爬取数据仅用于个人学习和研究,不得用于商业用途,且需遵守小红书的用户协议,不要过度爬取导致服务器压力。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1730

PAT算法实战指南:从C++核心技巧到阿里P7工程思维

算法与数据结构是计算机科学的基础,其核心在于通过高效的数据组织和计算策略解决实际问题。理解其原理,如树形结构的遍历、图论中的最短路径算法,能帮助开发者构建清晰的逻辑思维和系统建模能力。这些基础技术具有极高的工程价值,是构建高性能、高可靠性软件系统的基石,广泛应用于搜索引擎、推荐系统、分布式计算等场景。本文聚焦于PAT(程序设计能力考试)这一经典实战平台,深入解析如何将C++语言特性、STL库的高效应用与算法思维相结合。文中特别强调了输入输出加速、边界条件处理等工程实践中的关键“坑点”,并分享了如何通过系统训

weixin_29233857的博客 237

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

CSP CCF认证介绍 & 备考建议

CCF CSP认证,全称为CCF计算机软件能力认证(Certified Software Professional,简称CSP),是中国计算机学会(CCF)推出的一项针对软件开发者实际编程能力的认证。自2014年首次举办以来,CSP认证已逐渐成为衡量个人计算机专业能力的重要标准,尤其在高校和企业招聘中得到了广泛认可。

Morishima04的博客 5万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

国内计算机高含金量赛事盘点

根据国内计算机领域赛事的认可度、影响力及对升学、就业的实际助力,以下为高含金量赛事的分类与介绍。蓝桥杯在多数顶尖高校的保研、评优体系中已不具备显著优势,故不列入高含金量梯队。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 337

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

下一篇: C语言代码随想录刷题计划 Day1
南亭叙
博客等级 码龄6年 119粉丝 7原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值