当前课程知识点:程序设计基础 > 第四章 筛法与查找 > 4.3 线性查找 > 4.3.2 扑克查找问题代码翻译
首先第一句初始化13张扑克
根据前面的经验我们知道
是需要初始化一个13个元素的整型数组
那么写法就是int cards[13]表示13个整型的变量
然后我们要对它进行初始化
把我们手中的13张牌进行存储
数组的初始化过程就是用一个大括号
中间括上13个整数
其实就是把我手中的牌找到对应的整数添到大括号当中去
第二句假设没有黑桃Q
我们在前面的学习当中做这种假设
其实就是设定一个新的变量
那我这里最终的目的是要记黑桃Q所在的位置
然后我设置一个POS position这样一个变量
表达我最后找到的位置
如果它是-1 表达的就是黑桃Q我没找到
所以一开始把这个值初始化为-1
再往下依次枚举每一张牌
其实就是写一个for循环
从0一直到小于13
所有的这样的牌来做一下下面的判断
如果是黑桃Q其实就是判断cards这个数组当中
对应的i的这个位置
这张牌的数值是不是等于黑桃Q对应的数值
那也就写成了下面这样
cards[i]是不是判断等于等于112
根据我们前面的编码的规则
黑桃Q 黑桃取100 Q是12
那再往下记下所在的位置
所在的位置其实就是i了
那我就把i赋值给POS这个变量
那么我就把它记下了这个位置
最后停止枚举就是一句break跳出循环的语句
再下一句跳出循环之后
如果找到其实就是判断POS这个变量
是还是初始-1的这个值呢
还是中间被赋值成了i
所以我下面如果找到就判断一下POS是不是等于-1
如果不等于-1就说明找到了
然后下面这个否则对应的是同等级的一个else语句
再往下如果找到了是输出位置的这个语句
实际上就是输出了一大串对应的输出
这里我输出了一个容易看懂的中文
黑桃Q是D
然后中间是一个输出的结果POS+1 为什么要加1
因为我们这个循环的变量是记下来的i
是一个数组的下标 从0开始的
那我既然输出来给人看 是要以人的习惯为准
改成以1为开始的
那么如果POS等于0
输出的就是第一张 符合我们的习惯
下面else后面的这个输出一个没找到
就输出一个字符串没找到 回车
那这样我的一个查找的程序就写完了
-1.1 基础知识
-1.2 买菜问题
-1.3 数学运算
-1.4 补充说明
-1.5 总结
--1.5 总结
-程设论道
--程设论道
-师生问答
-第一章 编程初步--语法自测
-2.1 关于超级计算器的几点思考
-2.2 电子秤模拟 — 背景介绍及需求分析
-2.3 电子秤模拟 — 代码实现
-2.4 变量定义与变量类型
-2.5 猜数游戏与数据表示
-2.6 关于变量的讨论
--公告
-2.7 变量体现的计算思维
-程设论道
--程设论道
-师生问答
--师生问答
-第二章 变量与代数思维--语法自测
-3.1 谁做的好事——语义表示
-3.2 谁做的好事——真假检查
-3.3 谁做的好事——循环枚举
-3.4 谁是嫌疑犯——多重循环枚举
-3.5 谁是嫌疑犯——破案线索表示
-3.6 谁是嫌疑犯——用二进制枚举
-程设论道
--程设论道一
--程设论道二
--程设论道三
-师生问答
-第三章 逻辑推理与枚举解题--语法自测
-4.1 插花游戏
-4.2 筛法
-4.3 线性查找
-4.4 折半查找
--4.4.1 提问
-4.5 排序问题
-4.6 总结
--4.6.1 总结
-程设论道
--程设论道二:筛法
-师生问答
-第四章 筛法与查找--语法自测
-5.1 阶乘
-5.2 排序
-5.3 矩阵填充
-5.4 分书与八皇后
-5.5 青蛙过河
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答一
--师生问答二
-第五章 分治思想与递归--语法自测
-6.1 兔子数列问题
-6.2 分鱼问题
-6.3 橱窗的插花问题
-6.4 最长公共子序列问题
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第六章 递推与动态规划--语法自测
-7.1 统计记录总数
-7.2 统计活跃用户数
-7.3 统计在线时长
--7.3.2 结构
-7.4 总结
--7.4.1 总结
-程设论道
--程设论道
-师生问答
--师生问答
-第七章 文本数据处理--语法自测
-8.1 将数据组织成链表
-8.2 提高链表访问效率 —— 哈希链表
-8.3 以二进制文件存储链表
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第八章 非文本数据处理--语法自测
-9.1 自动售卖程序
-9.2 配制水果信息
-9.3 指定界面语言
-程设论道
--程设论道
-师生问答
--师生问答
-第九章 可配置的程序设计--语法自测