- 博客(19)
- 问答 (1)
- 收藏
- 关注
原创 简单计算器 考虑括号优先级 c语言
上课时我们老师布置的作业,不知道大家是不是也做过。第一次写考虑括号的计算器,把自己原本的代码优化了一下,拿出来与大家分享。要求:简单计算器,可以考虑优先级以及括号,括号可以嵌套,输出规格化。思路:将输入储存进一个字符串内,从左到右以此计算,分单元计算。比如,5*3+4/2*3+1+6*3中,5*3, 4/2*3,1,6*3分别为一个单元,遇到括号则将括号中的算是取出来,单独运算。最后得到的数通过加减结合在一起,即最终结果。先获取第一个单独的数字,从字符串最左端向右,遇到加减号就停下来,加
2022-03-19 15:39:13
2786
2
原创 数组处理列表
#include <stdio.h>#include<stdlib.h>void shuchu(int *num,int n);void he(int *num,int n);void average(int *num,int n);void max(int *num,int n);void shunxu(int *num,int n);void shanchu1(int *num,int *n);void shanchu2(int *num,int *n);in.
2022-03-04 20:08:45
450
原创 汉诺塔小游戏-c语言实现
文章首先介绍了汉诺塔的基本概念和游戏规则:即玩家需要将一组大小不一的圆盘从一根柱子移动到另一根柱子上,同时遵守特定的规则。然后,逐步解析了代码的关键部分,包括:全局定义:设定了游戏的最大层数、画布尺寸等常量以及操作步数、难度选择等变量。结构体定义:创建了用于表示游戏状态的数据结构,例如画布和柱子。盘子移动相关函数:实现了添加(add)和删除(del)盘子的功能,以及检查并执行合法移动的cal函数。界面打印相关函数:提供了显示游戏界面、操作说明及当前游戏状态的功能。游戏逻辑相关函数:包含了选择难度
2022-02-26 17:36:18
4048
5
原创 PAT 1110 区块反转 (25 分) c语言
链表题欸,继续偷懒就可以了。需要注意一下最后一个测试点,其中存在链表以外的节点,因此链表长度需要重新计算。题目:1110 区块反转 (25 分)给定一个单链表L,我们将每K个结点看成一个区块(链表最后若不足K个结点,也看成一个区块),请编写程序将L中所有区块的链接反转。例如:给定L为 1→2→3→4→5→6→7→8,K为 3,则输出应该为 7→8→4→5→6→1→2→3。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的...
2022-02-08 16:14:36
1096
1
原创 PAT 1109 擅长C (20 分) c语言 测试点分析
这题目简直。。。太(看)有(着)意(就)思(烦)了,不知道c语言能不能跳转输出位置,个人能力不足,最后用矩阵输出勉强搞定。各位大神如果有更简单的方法,还望相告。 思路和测试点放于代码之后,细节写在注释里。题目:1109 擅长C (20 分)当你被面试官要求用 C 写一个“Hello World”时,有本事像下图显示的那样写一个出来吗?输入格式:输入首先给出 26 个英文大写字母 A-Z,每个字母用一个7×5的、由C和.组成的矩阵构成。...
2022-02-08 15:13:02
998
1
原创 PAT 1105 链表合并 (25 分) c语言
根据之前关于链表的题目的经验,在pat里面做链表是可以偷懒的,也就是不真正实现链表合并,只按要求顺序输出,但思路应该是大同小异的,无伤大雅。细节写进注释里了,思路比较简单,直接硬上,不过好在没有超时。题目1105 链表合并 (25 分)给定两个单链表L1=a1→a2→⋯→an−1→an和L2=b1→b2→⋯→bm−1→bm。如果n≥2m,你的任务是将比较短的那个链表逆序,然后将之并入比较长的那个链表,得到一个形如a1→a2→bm→a3→a4→bm−1...
2022-02-07 14:39:18
1639
原创 PAT 1104 天长地久 (20 分) C语言
这个题目的关键在于对代码的简化,很容易就超时,所以一定要尽可能简化,我的简化思路放在文章最后,欢迎参考与指正。题目:1104 天长地久 (20 分)“天长地久数”是指一个K位正整数A,其满足条件为:A的各位数字之和为m,A+1的各位数字之和为n,且m与n的最大公约数是一个大于 2 的素数。本题就请你找出这些天长地久数。输入格式:输入在第一行给出正整数N(≤5),随后N行,每行给出一对K(3<K<10)和m(1<m<9...
2022-02-06 17:23:19
1719
2
原创 PAT 1103 缘分数 (20 分) c语言 测试点
思路: 先写一个函数用于判断a和它的小弟a−1的立方差是不是某一个数(这里暂称num)的平方,至于它是不是缘分数以及它的缘分数是什么,这里可以采用循环来找是否存在 b和它的小弟b−1的平方和等于num,是则输出并记录个数。题目:1103 缘分数 (20 分)所谓缘分数是指这样一对正整数a和b,其中a和它的小弟a−1的立方差正好是另一个整数c的平方,而c正好是b和它的小弟b−1的平方和。例如83−73=169=132,而13=32+2...
2022-02-05 22:05:59
1592
3
原创 PAT 1100 校庆 (25 分) c语言
首先说一下思路,由于题目保证最年长的人只有一位,我们可以用两个字符串分别记录两组数据中最大年龄的人,统计所到校友的个数,按是否存在所到校友区分应该输出哪一个,查找时使用qsort和bsearch函数。值得一提的是,在有校友到学校时,输出的是所有校友中年龄最大的,并不是到校校友中年龄最大的。1100 校庆 (25 分)2019 年浙江大学将要庆祝成立 122 周年。为了准备校庆,校友会收集了所有校友的身份证号。现在需要请你编写程序,根据来参加校庆的所有人士的身份证号,统计来了多少校......
2022-02-04 20:39:53
1066
6
原创 PAT 1095 解码PAT准考证 (25 分) c语言
这个题测试点似乎没有太刁难大家,但这三个题搞进一个题一样的架势,还是挺费劲的。思路就是逐个解决,分1,2,3分别写函数处理,因为英语不好,变量名有点乱,细节写在注释里,请大家指正。设置一个结构体stu储存所有的数据,写两个函数函,time和kaochanghao提取字符串中的信息。case1,case2,case3分别执行三种指令(这里2没有必要,于是没有这么做)。操作1:储存所有数据,按分数降序,相同则字典顺序递增,排序后从头到尾循环一遍找出符合要求的输出即可。操作2...
2022-01-28 11:18:25
210
原创 PAT 1096 大美数 (15 分) c语言
不得不说这道题有一点阴险,阴险之处在于a整除b是b%a==0,而就算搞错了也会有两个测试点是对的,题干里的测试例也是对的,就很难发现自己弄错了。解决这个问题以后就比较容易了。1096 大美数 (15 分)若正整数 N 可以整除它的 4 个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。输入格式:输入在第一行中给出正整数 K(≤10),随后一行给出 K 个待检测的、不超过 104 的正整数。输出格式:对每个需要检测的数字,...
2022-01-28 10:24:18
3065
7
原创 PAT 1094 谷歌的招聘 (20 分) c语言
思路是用一个字符串储存输入的正整数,写一个函数求连续几位的值(结合指针),再用一个函数判断是否为素数,求得第一个素数,细节写在注释里了,这次的测试点没什么问题,要注意字符串所取长度的问题,一定要取到所给长度的最后一位,而且不要用strlen求长度,输入似乎不一定这么长,按照输入来。题目1094 谷歌的招聘 (20 分)2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘。内容超级简单,就是一个以 .com 结尾的网址,而前面的网址是一个 10 位素...
2022-01-27 11:20:37
555
原创 PAT 1088 三人行 (20 分) c语言
这个题的正确率估计是测试点四给拉下来了,直觉就觉得丙也是整数,我起初也是这么觉得,然而出题者的考虑又总是那么周到。1088 三人行 (20 分)子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”本题给定甲、乙、丙三个人的能力值关系为:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值;甲乙两人能力差是丙的能力值的 X 倍;乙的能力值是丙的 Y 倍。请你指出谁比你强应“从之”,谁比你弱应“改之”。输入格式:输入在一行中给出三个数,依...
2022-01-24 17:37:50
154
原创 PAT 1085 PAT单位排行 (25 分) c语言 测试点
这道题个人认为坑点有以下几个方面:1.容易超时,如果输入一组数据用一次bsearch和qsort,最后超时应该没跑了。(第一次提交就这么干的,好不容易写出来还不过......)2.后两个测试点可能会因为精度出现问题,比如把每个人的成绩直接取整,而不是最后取和后再取整。比较恶心的是,float不能胜任这道题目,所有需要用到小数的地方都需要是double型。3.还有就是较容易避免的一个地方,输出排名需要注意。这里有两种方法,一种是用一个变量记录重复的次...
2022-01-24 16:12:48
307
原创 PAT 1081 检查密码 (15 分) c语言
15分的小题,不算难,通过率这么低就有点怪怪的......但为了奖章和大家更好的进行学术交流ヽ( ̄ω ̄( ̄ω ̄〃)ゝ,我还是发出来让大家批评指正。题目1081 检查密码 (15 分)本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点.,还必须既有字母也有数字。输入格式:输入第一行给出一个正整数 N(≤100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串..
2022-01-23 20:49:01
512
原创 PAT 乙级 1080 MOOC期终成绩 (25 分) c语言 测试点分析
首先说一下最后一个测试点的问题,要注意最终成绩就是四舍五入过的整数,也就是说98.6和98.7成绩是一样的,着实被恶心到了,害我搞了半天。1.数据都采用int即可,四舍五入可以加0.5再强转int型2.由于学号不是纯数字,不能以 array[学号] 作为储存,因此需要用到qsort和bsearch。3.最后一个测试点存在98.6与98.7相同的情况,即59.8也算及格,因此要储存的时候就要是四舍五入过的,不要仅在输出的时候转化,排序会出错。4.排序方法优先依次为,合格优先,最终成绩递减,学
2022-01-23 20:03:40
635
原创 1025 反转链表 (25 分) c语言实现+测试点
题目1025 反转链表 (25 分)给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为 1→2→3→4→5→6,K为 3,则输出应该为 3→2→1→6→5→4;如果K为 4,则输出应该为 4→3→2→1→5→6,即最后不到K个元素不反转。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数N(≤105)、以及正整数K(≤N),即要求反转的子链结点的个数。结点的地址是 5 位...
2022-01-22 16:40:37
1396
1
原创 PAT 1002 写出这个数 C语言
题目读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu 此题思路比较简单,细节写在注释里,直接上代码了。#include<std..
2022-01-20 19:11:16
132
空空如也
hbuilder中如何开启颜色提示
2022-06-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人