C++第11周项目2(6)参考——谁是小偷?
2023-09-11 14:15:56 时间
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
【项目2:穷举法解决组合问题】先阅读例题,领会穷举法(意为“穷尽式列举”,也称枚举)的思想,然后自行选题进行解决,掌握这种程序设计的一般方法。
任务:利用穷举的方法解决下面的问题(选做一道即算完成任务,其他可以抽时间自由安排,多做会使你更聪明。)
(6)警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉好人”。现在已经知道这四人中有三人说的是真话,一人说的是假话。请问到底谁是小偷?
提示:设4个变量a,b,c,d,为0时表示不是小偷,为1时表示是小偷,用四重循环穷举a,b,c,d可能的取值的组合,对每一种组合判断其是否符合题目中给出的约束。最后结论:C是小偷。
#include iostream using namespace std; int main() int a,b,c,d; for(a=1;a a--) //穷举每个人是否是小偷的所有情况 for(b=1;b b--) //1:是小偷 0:不是 for(c=1;c c--) for(d=1;d d--) if((a==0)+(c==1)+(d==1)+(d==0)==3 a+b+c+d==1) //4人的说法中有3个真的,且只有一个小偷 cout "A " (a?"":"不") "是。" endl; cout "B " (b?"":"不") "是。" endl; cout "C " (c?"":"不") "是。" endl; cout "D " (d?"":"不") "是。" endl; return 0; }
下面一个程序的写法中,注意“4人的说法中有3个真的”(即if语句部分)的写法,理解了,就又是一个提高!要点,例:
当a为0时!a为1,a为1时!a为0,等同于a==0及a!=1的值,即
(下面是填好空的程序) (1)下面程序的功能是统计文本文件abc.txt中的字符个数,请填空将程序补充完整。
【项目2:洗牌】 在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,称为洗牌。试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,顺序输出54张牌的情况。 参考界面: 参考解答(共4种,可作为程序阅读,品味用STL解决问题的方法,必要时,请查找相关手册) 解法1:初始化一个 vector,顺序加入所有牌,即整数1~54。然后从容器中随机
【项目-数组类模板】 在数组类的基础上,将之改造为类模板,以使数组中可以存储各种类型的数据。 template class T //数组类模板定义 class Array private: T* list; //用于存放动态分配的数组内存首地址 int size; //数组大小(元素个数)
是一个函数模板的两个实例,其功能是将数组a中的前size个元素按从小到大顺序排列。试设计这个函数模板。 参考解答:
【项目1-分数类中的运算符重载】 (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。
【项目-数组类运算的实现】 设计数组类Array,为了实现测试函数中要求的功能,请补足相关的函数(构造、析构函数)和运算符重载的函数。 实现策略提示:可以将测试函数中的语句加上注释,取消一句的注释,增加相应的函数,以渐增地实现所有的功能,避免全盘考虑带来的困难。
【项目 - 点-圆-圆柱类族的设计】 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(
贺利坚 烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
相关文章
- 【C/C++学院】(28)项目实战HttpServer--源码
- 【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强
- 打开c++ 项目遇到的错误
- 打开c++ 项目遇到的错误
- C/C++基础讲解(四十三)之图形篇之绘制直线、圆、圆弧、 椭圆
- Matlab与C++混合编程 编写独立外部应用程序时出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误
- paip.c++ qt 项目工程互相引用的方法
- 100道c/c++面试题
- C++关于二进制位操作小结
- [h5棋牌项目]-10-c++ 如何把一个数组的值赋到另一个数组
- [手游新项目历程]-40-linux环境实现C/C++程序崩溃退出时打印栈信息
- C++调用C++项目中的Python脚本中的函数和类。,在,工程,python
- C++插入排序小练
- C++ 判断文件内容是二进制还是ASCII
- Xcode如何创建C++项目
- 使用cmake构建C++ workflow上手项目(支持Windows,Linux)
- 嵌入式linux开发,C/C++获取cpu的id和name
- C++第13周(春)项目1 - 点、圆的关系
- C++中emplace_back中的完美转发是什么
- PCL 半径滤波(C++详细过程版)
- C++使用技巧(十三):Google-GTest测试框架的安装与使用(demo源码实现)
- C++的学习心得和知识总结(十八)|基于EasyX实现 2048游戏 项目(C/C++版)
- C++的学习心得和知识总结(十六)|基于EasyX实现小甲鱼Python飞机大战项目(C++版)
- Android 匿名共享内存C++接口分析