小猫钓鱼C++程序
三年级 记叙文 2069字 615人浏览 谁家的宝儿6

//小猫钓鱼C++程序

#include<iostream>

#include"stdlib.h"

#include "stdio.h"

using namespace std;

struct queue

{

int data[100];

int head;

int tail;

};

struct stack

{

int data[100];

int top;

};

void main()

{

struct queue q1,q2;

struct stack s;

int book[10]; //book[0]-book[9],真正有用的是 book[1]-book[9] q1.head=0;

q1.tail=0;

q2.head=0;

q2.tail=0;

s.top=0;

/************初始化桌上的牌***********/

int i,t;

for (i=1;i<10;i++)

{

book[i]=0;

}

/**************各分配6张牌***********/

for (i=0;i<6;i++)

{

scanf("%d",&q1.data[q1.tail]);

q1.tail++;

}

for (i=0;i<6;i++)

{

scanf("%d",&q2.data[q2.tail]);

q2.tail++;

}

while (q1.head<q1.tail &&q2.head<q2.tail)

{

/*************q1出牌******************/

t=q1.data[q1.head];

q1.head++;

if (book[t]==0)

{

s.top++;

s.data[s.top]=t;

book[t]=1;

} else { q1.data[q1.tail]=t; q1.tail++; while (t!=s.data[s.top]) { q1.data[q1.tail]=s.data[s.top]; q1.tail++; book[s.data[s.top]]=0; s.top--; } q1.data[q1.tail]=s.data[s.top]; q1.tail++; book[s.data[s.top]]=0; s.top--; } if (q1.head==q1.tail) break ; /*************q2出牌******************/ t=q2.data[q2.head]; q2.head++; if (book[t]==0) { s.top++; //top指向桌上最后一张牌 s.data[s.top]=t; book[t]=1; } else { q2.data[q2.tail]=t; q2.tail++; while (t!=s.data[s.top]) { q2.data[q2.tail]=s.data[s.top]; q2.tail++; book[s.data[s.top]]=0; s.top--; } q2.data[q2.tail]=s.data[s.top]; q2.tail++; book[s.data[s.top]]=0; s.top--; } } if (q2.head==q2.tail) { printf("q1win" ); printf("q1当前手中的牌是:" ); for (i=q1.head;i<q1.tail;i++) { printf("%d",q1.data[i]); }

if (s.top>0) {

printf(" 桌上的牌是:" ); for (i=1;i<=s.top;i++) { printf("%d",s.data[i]); } } else { printf(" 桌上没有牌" ); } } else { printf("q2win" ); printf("q2手中的牌是:" ); for (i=q2.head;i<q2.tail;i++) { printf("%d",q2.data[i]); } if (s.top>0) { printf(" 桌上的牌是:" ); for (i=1;i<=s.top;i++) { printf("%d",s.data[i]); } } else { printf(" 桌上没有牌" ); } } system("pause" ); }