c語言:抽籤遊戲實現

   

【問題描述】

抽籤是我們日常生活中經常遇到的一件事,並且其形式有很多種。這裏介紹一種抽籤遊戲,如圖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[N] = { "張三","李四","王五","趙陽","孟飛","凌墨" };   //抽籤者
	string P[N] = { "蘋果手機一部", "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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章