您的位置:首页 > 编程语言 > C语言/C++

c语言:抽签游戏实现

2016-04-14 20:16 375 查看
【问题描述】

抽签是我们日常生活中经常遇到的一件事,并且其形式有很多种。这里介绍一种抽签游戏,如图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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: