c语言:抽签游戏实现
2016-04-14 20:16
375 查看
【问题描述】
抽签是我们日常生活中经常遇到的一件事,并且其形式有很多种。这里介绍一种抽签游戏,如图3-2所示,最上面一排是游戏的参加者——称为抽签者,最下面一排是签号(奖品、公差等)。每个人依次顺着竖线往下走,当碰到横线时,即转横向前进,碰到竖线再往下,以此类推,则游戏结束后,抽签者会一一对应到最下面一排的签号。
抽签是我们日常生活中经常遇到的一件事,并且其形式有很多种。这里介绍一种抽签游戏,如图3-2所示,最上面一排是游戏的参加者——称为抽签者,最下面一排是签号(奖品、公差等)。每个人依次顺着竖线往下走,当碰到横线时,即转横向前进,碰到竖线再往下,以此类推,则游戏结束后,抽签者会一一对应到最下面一排的签号。
#include "stdafx.h" #include<iostream> #include<string> #include<iomanip> #define N 6 #define M 8 using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int i = 0; int j = 0; string t; string A = { "张三","李四","王五","赵阳","孟飞","凌墨" }; //抽签者 string P = { "苹果手机一部", "PAID 一部", "100元充值卡", "谢谢抽奖","谢谢抽奖","美女一位" }; //奖品 const int C[M][N - 1] = { { 0, 0, 1, 0,0 }, { 1,0 ,1, 0,1 }, { 1, 0, 1, 0,0 }, { 1, 0, 1,0, 1 }, { 0, 1,0, 0, 1 }, { 0, 1, 0, 1,0 }, { 1, 0,0, 1, 0 }, { 1,0,1, 0, 0 } }; std::cout << "以下是参加抽奖的观众:" << endl; for (j = 0; j < N; j++) { std::cout << setiosflags(ios_base::left) << setw(10) << A[j] << endl;; } std::cout << "以下是今天的全部奖品:" << endl; for (j = 0; j < N; j++) { std::cout << setiosflags(ios_base::left) << setw(10) << P[j]<<endl; } for (i = 0; i < M; i++) //进行交换数据 { for (j = 0; j < N - 1; j++) { if (C[i][j] == 1) { t = A[j]; A[j] = A[j + 1]; A[j + 1] = t; } } } std::cout << "最终抽签者抽到的奖品是:" << endl; for (j = 0; j < N; j++) { std::cout << setiosflags(ios_base::left) << setw(10) << A[j] << setiosflags(ios_base::left) << setw(10) << P[j] << endl;; } std::cout << endl; return 0; }
相关文章推荐
- 深入理解C++的动态绑定和静态绑定
- 排列生成器详解+实例 (C++实现)
- C++匿名命名空间
- C++ 入门
- Kmeans聚类c++实现
- 求两个已排序单链表中相同的数据(C语言)
- 求链表相交时的交点(C语言)
- 判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】(C语言)
- 判断两个链表是否相交,若相交,求交点。(假设链表不带环)(C语言)
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?(C语言)
- 查找单链表的倒数第k个节点,要求只能遍历一次链表(C语言)
- c++第3次作业
- 查找单链表的中间节点,要求只能遍历一次链表(C语言)
- 合并两个有序链表,合并后依然有序(C语言)
- C++中operator的主要用法
- 单链表排序(冒泡排序)(C语言)
- leetcode21题 题解 翻译 C语言版 Python版
- c++ json封装---解析
- c++第二次作业
- ActiveX(MFC)控件——添加接口及WEB调用