欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實現(xiàn)小貓釣魚算法

 更新時間:2019年01月15日 15:38:56   作者:Mr_HuangJW  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)小貓釣魚算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

C語言小貓釣魚實現(xiàn)了兩個人打牌,分別依次將牌放到桌子上,若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();
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Qt實現(xiàn)簡易QQ聊天界面

    Qt實現(xiàn)簡易QQ聊天界面

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)簡易QQ聊天界面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++中int類型按字節(jié)打印輸出的方法

    C++中int類型按字節(jié)打印輸出的方法

    這篇文章主要給大家介紹了關于C++中int類型按字節(jié)打印輸出的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • 虛函數(shù)表-C++多態(tài)的實現(xiàn)原理解析

    虛函數(shù)表-C++多態(tài)的實現(xiàn)原理解析

    這篇文章主要介紹了虛函數(shù)表-C++多態(tài)的實現(xiàn)原理,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • C++的函數(shù)與指針

    C++的函數(shù)與指針

    今天小編就為大家分享一篇關于C++函數(shù)與指針的文章,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-10-10
  • APUE筆記之:進程環(huán)境詳解

    APUE筆記之:進程環(huán)境詳解

    本篇文章是對APUE 進程環(huán)境詳解進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++編程中break語句和continue語句的學習教程

    C++編程中break語句和continue語句的學習教程

    這篇文章主要介紹了C++編程中break語句和continue語句的學習教程,break和continue是C++循環(huán)控制中的基礎語句,需要的朋友可以參考下
    2016-01-01
  • MFC對話框中實現(xiàn)走馬燈效果

    MFC對話框中實現(xiàn)走馬燈效果

    這篇文章主要為大家詳細介紹了MFC對話框中實現(xiàn)走馬燈效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 基于Qt編寫超精美自定義控件的示例代碼

    基于Qt編寫超精美自定義控件的示例代碼

    無論是哪一門開發(fā)框架,如果涉及到UI這塊,肯定需要用到自定義控件,本文為大家準備了一些基于QT編寫的超精美自定義控件,需要的可以參考一下
    2023-07-07
  • QT中QByteArray與char、int、float之間的互相轉化

    QT中QByteArray與char、int、float之間的互相轉化

    本文主要介紹了QT中QByteArray與char、int、float之間的互相轉化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • C語言詳細分析結構體的內存對齊規(guī)則

    C語言詳細分析結構體的內存對齊規(guī)則

    C 數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結構是 C 編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲不同類型的數(shù)據(jù)項,本篇讓我們來了解C 的結構體內存對齊
    2022-07-07

最新評論