石頭、剪刀、布程式,C語言模擬
如果二者相同,則平局;並且規定,如果贏一局則得 2 分,平局的話雙方各得 1 分,輸的人不得分。兩個人一共玩了 N 局,
並且已知每個人每局出的是什麼,我們用字元’R’代表石頭,’S’代表剪子,’P’代表布。並且給出兩個字串代表兩個人每局的出法。
對於這個遊戲,輸出贏家是誰,並且輸出他的得分,如果最後出現了平分,則輸出“TIE”加上平分的分數,用空格隔開(具體輸出方式見樣例)。*/
程式1:
#include<stdio.h> int comp(char a,char b)//A的每一局得分函式 { if(a==b)return 1; if(a=='R'&&b=='S')return 2; if(a=='R'&&b=='P')return 0; if(a=='S'&&b=='R')return 0; if(a=='S'&&b=='P')return 2; if(a=='P'&&b=='R')return 2; if(a=='P'&&b=='S')return 0; } int main() { int scoreA=0,scoreB=0;//分別代表A和B的得分 char a,b;//分別代表A和B出的形狀 int n;//比較的局數 int i;//迴圈變數 int temp;//臨時儲存函式comp的返回值 printf("R:石頭 S:剪子 P:布\n"); printf("請輸入比較的局數:");//輸入比較局數 scanf("%d",&n); for(i=0;i<n;i++)//迴圈n次 { printf("inputA%d:",i+1); getchar(); scanf("%c",&a);//輸入A出的 printf("inputB%d:",i+1); getchar(); scanf("%c",&b); //輸入B出的 temp=comp(a,b); scoreA+=temp;//累加A的分數 scoreB+=(2-temp); //累加B的分數 } if(scoreA>scoreB)//輸出A和B的比較結果 printf("A(%d)贏B(%d)輸\n",scoreA,scoreB); else if(scoreA<scoreB) printf("A(%d)輸B(%d)贏\n",scoreA,scoreB); else printf("TIE分數都是%d\n",scoreA); system("pause"); return 0; }
程式2:
#include<stdio.h> #define MAXSIZE 100 int comp(char a,char b)//A的每一局得分函式 { if(a==b)return 1; if(a=='R'&&b=='S')return 2; if(a=='R'&&b=='P')return 0; if(a=='S'&&b=='R')return 0; if(a=='S'&&b=='P')return 2; if(a=='P'&&b=='R')return 2; if(a=='P'&&b=='S')return 0; } int main() { int scoreA=0,scoreB=0;//分別代表A和B的得分 char a[MAXSIZE],b[MAXSIZE];//分別代表A和B出的形狀 int n;//比較的局數 int i;//迴圈變數 int temp;//臨時儲存函式comp的返回值 printf("R:石頭 S:剪子 P:布\n"); printf("請輸入比較的局數:\n");//輸入比較局數 scanf("%d",&n); //printf("inputA:"); getchar(); for(i=0;i<n;i++) { scanf("%c",&a[i]); } getchar(); for(i=0;i<n;i++) { scanf("%c",&b[i]); } for(i=0;i<n;i++)//迴圈n次 { temp=comp(a[i],b[i]); scoreA+=temp;//累加A的分數 scoreB+=(2-temp); //累加B的分數 } if(scoreA>scoreB)//輸出A和B的比較結果 printf("A(%d)贏B(%d)輸\n",scoreA,scoreB); else if(scoreA<scoreB) printf("A(%d)輸B(%d)贏\n",scoreA,scoreB); else printf("TIE %d\n",scoreA); system("pause"); return 0; }
相關推薦
石頭、剪刀、布程式,C語言模擬
/*同問用C編寫:同學 A 和B兩個人玩最簡單的石頭剪子布遊戲,遊戲規則如下:石頭贏剪子;剪子贏布;布贏石頭; 如果二者相同,則平局;並且規定,如果贏一局則得 2 分,平局的話雙方各得 1 分,輸的人不得分。兩個人一共玩了 N 局, 並且已知每個人每局出的是什麼,我們用字元
原碼、反碼、補碼及位操作符,C語言位操作
計算機中的所有資料均是以二進位制形式儲存和處理的。所謂位操作就是直接把計算機中的二進位制數進行操作,無須進行資料形式的轉換,故處理速度較快。 1、原碼、反碼和補碼 位(bit) 是計算機中處理資料的最小單位,其取值只能是 0 或 1。 位元組(Byte)
抖音很火的告白程式設計程式,C語言一樣也能做
最近抖音上火了一個由小夥伴自己製作的一個表白程式碼,很多小夥伴都在問這個表白程式碼是怎麼寫的?大家都知道是使用vbs實現的!雖說小編也承讓VBS實現更簡單,但是如果把列印心那個程式用起來,C語言是反而更妙一點。今天小編帶著大家用C語言實現下,順帶複習下C語言中的格式化
(石頭、剪刀、布)shell腳本,隨機對比,case的應用
評論 單獨 三種 數組 石頭 兩種方法 == dom ash 腳本實現人機<石頭,剪刀,布>遊戲,機器應用隨機方法,結合用戶輸入給出結果,文章有兩種方法,重在理解,第一種方法是該腳本的邏輯方面,第二種較容易理解。一 : 第一種方法,讓機器給出一個隨機數字 0-2
Python3 實現 石頭、剪刀、布 猜拳小遊戲
Python基礎語法 目標 實現一個人與計算機玩猜拳——石頭剪刀布的小遊戲,學會Python的迴圈控制語句和條件判斷語句。 思考一: 假如把石頭、剪刀、布分別用數字0、1、2表示。那麼如何判定誰勝誰負呢? user(人) compu
2.線性表的鏈式儲存結構————單鏈表(思路分析,C語言、C++完整程式)
目錄 1.單鏈表的基本概念 (1)單鏈表:當連結串列中的每個結點只含有一個指標域時,稱為單鏈表。 (2)頭指標:如上圖所示,連結串列中第一個結點的儲存位置叫做頭指標。 (3)頭結點:頭結點是放在第一個元素結點之前的結點,頭結點不是連結串列中的必
PHP定時任務執行處理、Crontab定時執行程式,Linux設定定時任務(教程案例)
【第一步】:先寫task.sh指令碼檔案。 【第二步】:設定Crontab定時時間,定時執行task.sh指令碼檔案 【案例一】:每月1號、15號的06:10點,定時備份網站原始碼: 【第一步】:先寫youhutong.sh指令碼檔案。 [[email pr
四、學習筆記,C語言—運算子
目錄 運算子 運算子優先順序 運算子 運算子型別 說明 運算子型別 說明 算術運算子 + − * / % 指標運算子 *
二、學習筆記,C語言—常量
目錄 常量 常量 整型常量 常量是指在程式執行期間其數值不發生變化的資料。整型常量通常簡稱為整數。 整數可以是十進位制、八進位制和十六進位制數 浮點常量 浮點常
一、學習筆記,C語言—資料型別
目錄 資料型別 基本資料型別 資料型別 基本資料型別 bool型別 使用bool型別 需要引入<stdbool.h> 型別bool的值域 型別名
智慧社群APP、智慧社群小程式,你想要的都在這裡!
現階段隨著我國智慧手機普及,手機功能的不斷整合與強化,手機成為了我們日常工作與生活中使用頻率最高的產品之一。除了時下熱門的移動支付外,手機開門也成為當下流行的趨勢。 隨著人工智慧、物聯網、大資料技術的成熟與發展,智慧社群建設也如火如荼,當下智慧社群APP、智慧社群小程式被年輕人的追崇,趣
Extjs表單元素實現橫向、多列布局,最簡單的程式碼示例
Ext.onReady(function(){ Ext.create('Ext.form.Panel',{ title : '橫向佈局測試', height : 130, width
Eureka--2、第一個Eureka程式,Eureka Client的自啟動原理和簡要過程
在之前的Spring Cloud Config的基礎上,搭建簡單的Eureka Server 沒有程式碼,很多試驗做不起來,我們先建立個Eureka Server再說。 本篇主要講如何建立Eureka Server和Eureka Client,還有個重點是通過原始碼分析E
簡單遠端遙控程式【網路程式設計 - 簡單遠端遙控程式,C實現】
實驗內容 基於Windows下Winsocket程式設計 實現 1.list (顯示伺服器端當前路徑下所有檔案) 2.get 遠端檔案路徑 本地檔案路徑 (下載遠端檔案 到 本地檔案路徑 ) 3.port 本地檔案路徑 遠端檔案路徑 (上傳 本地檔案 到 本地檔案路徑下 ) 4.quit (退出程式) 參
[日常練習] 1. 基於素數及閏年判斷、列印乘法口訣表的C語言實現
在日常學習中,我們能很快的分析得到一個數是否是素數,瞭解它的判定法則,但是要是給你100個數,你需要花費多少時間才能判斷其中的素數呢?又能保證多少正確率呢?好吧,即便你是數學巧算能手、珠心算大神,100的總量對於你來講是九牛一毛!!!但是我給你10000+個(我就是刻意為難你胖虎~),您慢慢算吧
c語言模擬磁碟尋道演算法:SSTF(最短尋道優先演算法、CSCAN(迴圈掃描演算法、SCAN(掃描演算法)
#include<stdio.h> #include<time.h> #include<stdlib.h> #include<string.h> #include<malloc.h> #include<math
B-樹的插入、查詢、刪除 及 可執行的C語言程式碼
前面討論的查詢都是內查詢演算法,被查詢的資料都在記憶體。當查詢的資料放在外存,用平衡二叉樹作磁碟檔案的索引組織時,若以結點為內外存交換的單位,則找到需要的關鍵字之前,平均要進行lgn次磁碟讀操作,而磁碟、光碟的讀寫時間要比隨機存取的記憶體代價大得多。其二,外存的存取是以“
作業優先排程演算法 先來先服務、短作業排程演算法(c語言描述)
/*先來先服務排程演算法*/ #include<stdio.h> #define N 10 int Arival[N]={0}; int Go[N]={0}; int Start[N]={0}; int End[N]={0}; int Timer[N]={0};
C語言模擬實現strncpy、strncpy、strncat、strstr和strrstr函式實現
以下是我用C語言模擬實現的部分字串函式: 1、strncpy函式的實現 #include<stdio.h> #include<assert.h> #include<
原碼、反碼和補碼(C語言 計算機原理)
原碼、反碼和補碼 1).資料在記憶體中儲存的時候都是以二進位制的形式儲存的. int num = 10; 原碼、反碼、補碼都是二進位制.只不過是二進位制的不同的表現形式. 資料是以補碼的二進位制儲存的. 2). 1個int型別的