C语言实现小猫钓鱼算法分享!

C语言小猫钓鱼实现了两个人打牌,分别依次将牌放到桌子上,若A出的牌与桌子上的牌一样,则A将桌子上两张一样的牌及其中间所有牌放到A手中,看A,B两个人谁先打完所有牌。

  #include <stdio.h>  struct queue  {   int data[1000];   int head;   int tail;  };  struct stack  {   int top;   int data[10];  };     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++;   }   //出牌   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");   }   //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;   //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语言教程关注<计算机技术网>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/482641.html

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐