最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

C語言小貓釣魚實(shí)現(xiàn)了兩個(gè)人打牌,分別依次將牌放到桌子上,若A出的牌與桌子上的牌一樣,則A將桌子上兩張一樣的牌及其中間所有牌放到A手中,看A,B兩個(gè)人誰先打完所有牌。

#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個(gè)牌
 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();
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言編程數(shù)據(jù)結(jié)構(gòu)棧與隊(duì)列的全面講解示例教程

    C語言編程數(shù)據(jù)結(jié)構(gòu)棧與隊(duì)列的全面講解示例教程

    本文介紹著重介紹數(shù)據(jù)結(jié)構(gòu)-棧和隊(duì)列的知識(shí),由于本文也設(shè)計(jì)多個(gè)動(dòng)態(tài)內(nèi)存開辟函數(shù),小伙伴們?cè)趯W(xué)習(xí)本文之前,一定一定一定要把動(dòng)態(tài)內(nèi)存開辟相關(guān)知識(shí)掌握牢固,這樣學(xué)習(xí)起本文才能事半功倍
    2021-10-10
  • C語言scanf,fscanf和sscanf的區(qū)別

    C語言scanf,fscanf和sscanf的區(qū)別

    每種語言都對(duì)正則表達(dá)式有著不同程度的支持,在C語言中,有輸入功能的這三個(gè)函數(shù)對(duì)正則表達(dá)式的支持并不強(qiáng)大,但是我們還是有必要了解一下
    2021-10-10
  • C語言實(shí)現(xiàn)漢諾塔游戲

    C語言實(shí)現(xiàn)漢諾塔游戲

    個(gè)人覺得漢諾塔這個(gè)遞歸算法比電子老鼠的難了一些,不過一旦理解了也還是可以的,其實(shí)網(wǎng)上也有很多代碼,可以直接參考。記得大一開始時(shí)就做過漢諾塔的習(xí)題,但是那時(shí)代碼寫得很長(zhǎng)很長(zhǎng),也是不理解遞歸的結(jié)果。今天重新來實(shí)現(xiàn)一下
    2015-03-03
  • C語言中字符串和數(shù)字的相互轉(zhuǎn)換實(shí)現(xiàn)代碼

    C語言中字符串和數(shù)字的相互轉(zhuǎn)換實(shí)現(xiàn)代碼

    以下是對(duì)C語言中字符串和數(shù)字的相互轉(zhuǎn)換實(shí)現(xiàn)代碼進(jìn)行了分析介紹,需要的朋友可以參考下
    2013-07-07
  • C++編寫簡(jiǎn)易的飛機(jī)大戰(zhàn)

    C++編寫簡(jiǎn)易的飛機(jī)大戰(zhàn)

    一款自己設(shè)計(jì)的飛機(jī)小游戲,本程序于運(yùn)行環(huán)境WINDOWS XP系統(tǒng),采用C++語言編寫。游戲具有得分排名榜,而且在游戲完成后可以提交得分到網(wǎng)絡(luò)上的世界排名榜中。
    2015-08-08
  • C++中讀寫txt文件并分離字符的方法

    C++中讀寫txt文件并分離字符的方法

    今天小編就為大家分享一篇C++中讀寫txt文件并分離字符的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 新手socket編程入門詳解指南

    新手socket編程入門詳解指南

    本文,將一步一步引導(dǎo)初學(xué)者來學(xué)習(xí)socket,所有編程思路都結(jié)合在socket API里面,以及提供socket的疑問和基礎(chǔ)知識(shí)點(diǎn),同時(shí)在最后給出多個(gè)例程,下面可以和小編一起學(xué)習(xí)
    2019-05-05
  • C語言修煉之路一朝函數(shù)思習(xí)得?模塊思維世間生上篇

    C語言修煉之路一朝函數(shù)思習(xí)得?模塊思維世間生上篇

    函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語句。每個(gè)?C?程序都至少有一個(gè)函數(shù),即主函數(shù)?main()?,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù)
    2022-03-03
  • C語言復(fù)數(shù)的加減及輸出結(jié)構(gòu)體

    C語言復(fù)數(shù)的加減及輸出結(jié)構(gòu)體

    大家好,本篇文章主要講的是C語言復(fù)數(shù)的加減及輸出結(jié)構(gòu)體,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • C++面向?qū)ο髮?shí)現(xiàn)五子棋小游戲

    C++面向?qū)ο髮?shí)現(xiàn)五子棋小游戲

    本文介紹了如何運(yùn)用面向?qū)ο笏枷脒M(jìn)行五子棋游戲的設(shè)計(jì)與開發(fā),與面向過程程序設(shè)計(jì)比較,面向?qū)ο蟪绦蛟O(shè)計(jì)更易于實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的描述,提高軟件的擴(kuò)展性和可維護(hù)性。附上最終的程序源碼,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03

最新評(píng)論

金山区| 嵩明县| 塘沽区| 临江市| 长丰县| 江都市| 东港市| 三江| 依安县| 安义县| 兴隆县| 肇庆市| 乡城县| 龙岩市| 方正县| 囊谦县| 永嘉县| 阿克| 富宁县| 胶州市| 黄陵县| 九江县| 蒲江县| 碌曲县| 石家庄市| 汽车| 涟水县| 花垣县| 县级市| 长葛市| 上饶市| 宁国市| 淮北市| 通城县| 洪江市| 连江县| 调兵山市| 深泽县| 宁武县| 巍山| 江孜县|