c语言小猫钓鱼怎么用数列完成

2025-09-27 23:14:20

1、#include <stdio.h>

struct queue

{

 int data[1000];

 int head;

 int tail;

};

struct stack

{

 int top;

 int data[10];

};

c语言小猫钓鱼怎么用数列完成

2、int main(){

 struct queue q1,q2;

 struct stack s;

 int i,t,r,flag=0;

 q1.head=1;q1.tail=1;

 q2.head=1;q2.tail=1;

  

 //初始化桌子

 s.top=0;

 //读入6个牌

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

 {

 printf("输入q1的六张牌:");

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

 q1.tail++;

 }

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

 {

 printf("输入q2的六张牌:");

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

 q2.tail++;

 }

c语言小猫钓鱼怎么用数列完成

3、 //出牌

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

 {

 //debug

 printf("\nq1手中的牌为:");

 for(i=q1.head;i<=q1.tail-1;i++)

 {

 printf(" %d",q1.data[i]);

 }

 printf("\nq2手中的牌为:");

 for(i=q2.head;i<=q2.tail-1;i++)

 {

 printf(" %d",q2.data[i]);

 }

 if(s.top>0)

 {

 printf("\n桌子上的牌是:");

 for(i=1;i<=s.top;i++)

 {

 printf(" %d",s.data[i]);

 }

 printf("\n");

 }

 else

 {

 printf("\n桌子上没牌了\n");

 }

c语言小猫钓鱼怎么用数列完成

4、//q1出牌

 flag=0;

 t=q1.data[q1.head];

 for(i=1;i<=s.top;i++)

 {

 if(t==s.data[i])

 {

 flag=1;break;

 }

 }

 if(flag==0)

 {

 q1.head++;

 s.top++;

 s.data[s.top]=t;

 }

 if(flag==1)

 {

 q1.head++;

 q1.data[q1.tail]=t;

 q1.tail++;

 while(s.data[s.top]!=t)

 {

 q1.data[q1.tail++]=s.data[s.top];

 s.top--;

 }

 q1.data[q1.tail]=t;

 q1.tail++;

 s.top--;

 }

 if(q1.head==q1.tail) break;

c语言小猫钓鱼怎么用数列完成

5、//q2出牌

 flag=0;

 r=q2.data[q2.head];

 for(i=1;i<=s.top;i++)

 {

 if(r==s.data[i])

 {

 flag=1;break;

 }

 }

 if(flag==0)

 {

 q2.head++;

 s.top++;

 s.data[s.top]=r;

 }

 if(flag==1)

 {

 q2.head++;

 q2.data[q2.tail]=r;

 q2.tail++;

 while(s.data[s.top]!=r)

 {

 q2.data[q2.tail++]=s.data[s.top];

 s.top--;

 }

 q2.data[q2.tail]=r;

 q2.tail++;

 s.top--;

 }

 }

 if(q1.head==q1.tail)

 {

 printf("q2赢了!");

 printf("q2手中的牌为:");

 for(i=q2.head;i<=q2.tail-1;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("桌子上没牌了");

 }

 }

 if(q2.head==q2.tail)

 {

 printf("q1赢了!");

 printf("q1手中的牌为:");

 for(i=q1.head;i<=q1.tail-1;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("桌子上没牌了");

 }

 }

 getchar();getchar();

}

c语言小猫钓鱼怎么用数列完成

c语言小猫钓鱼怎么用数列完成

6、以上就是本文的全部内容,希望对大家的学习有所帮助。总结图如下

c语言小猫钓鱼怎么用数列完成

c语言小猫钓鱼怎么用数列完成

c语言小猫钓鱼怎么用数列完成

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢