C语言 满分代码:L1-044 稳赢 (15分)(解题报告)
生活随笔
收集整理的這篇文章主要介紹了
C语言 满分代码:L1-044 稳赢 (15分)(解题报告)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
立志用更少的代碼做更高效的表達
大家應該都會玩“錘子剪刀布”的游戲:兩人同時給出手勢,勝負規則如圖所示:
現要求你編寫一個穩贏不輸的程序,根據對方的出招,給出對應的贏招。但是!為了不讓對方輸得太慘,你需要每隔K次就讓一個平局。輸入格式:
輸入首先在第一行給出正整數K(≤10),即平局間隔的次數。隨后每行給出對方的一次出招:ChuiZi代表“錘子”、JianDao代表“剪刀”、Bu代表“布”。End代表輸入結束,這一行不要作為出招處理。
輸出格式:
對每一個輸入的出招,按要求輸出穩贏或平局的招式。每招占一行。
輸入樣例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
輸出樣例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
其實本題用C++更好些, 但考慮到很多初學的朋友找C代碼很困難, 因此就用C和C++都寫了一遍, 如果對大家產生了幫助, 還請點個贊哦~
C版本代碼
#include <stdio.h> #include <string.h> int main(){int k = 0;char s[20];int cnt = 0;scanf("%d", &k);k++;while(scanf("%s", s)){if(strcmp(s, "End") == 0) break;cnt++;if(k == cnt){printf("%s\n",s);cnt = 0;} else if(strcmp(s, "ChuiZi") == 0){printf("Bu\n");} else if(strcmp(s, "JianDao") == 0){printf("ChuiZi\n");} else if(strcmp(s, "Bu") == 0){printf("JianDao\n");} }return 0; }C++ 版本代碼
#include<iostream> using namespace std; string s[3] = {"JianDao", "ChuiZi", "Bu"}; int main() {int n, num = 0; cin>>n;string s1; while(cin>>s1 && s1!="End") {num++;if(num%(n+1)==0) { cout << s1 << '\n'; }else {for(int i=0;i<3;i++) if(s[i]==s1) cout<<s[(i+1)%3]<<"\n";}} return 0; }每日一句
零星的變好,最后也會如星河般閃耀
總結
以上是生活随笔為你收集整理的C语言 满分代码:L1-044 稳赢 (15分)(解题报告)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 满分代码:L1-043 阅览室
- 下一篇: C语言:5行代码解决 L1-045 宇宙