大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi
代表“锤子”、JianDao
代表“剪刀”、Bu
代表“布”。End
代表输入结束,这一行不要作为出招处理。
输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
//结尾无空行
输出样例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
//结尾无空行
一道字符串输入与判断的水题 好题,很细节!!
#include <stdio.h>
#include <string.h>
int main()
{int k, c;char s[10];scanf("%d", &k);c = k;//为初始化准备getchar();//细节取‘\n’while (gets(s) && s[0] != 'E'){if (k != 0){switch (s[0]){case'C':printf("Bu\n"); break;case'J':printf("ChuiZi\n"); break;//对第一个字母判断就够了了case'B':printf("JianDao\n"); break;}k--;}else{printf("%s\n", s);k = c;//初始化迎来新开始}}return 0;
}
注:判断字符串不可直接s!="xxxx" ,需要用s[ ]或strcmp()函数
#include <stdio.h>
#include <string.h>
int main(void)
{char* str_1 = "abc"; char* str_2 = "abc"; char* str_3 = "ABC";if (strcmp(str_1, str_2) == 0)printf("str_1 is equal to str_2. \n");elseprintf("str_1 is not equal to str_2. \n");if (strcmp(str_1, str_3) == 0)printf("str_1 is equal to str_3.\n");elseprintf("str_1 is not equalto str_3.\n");
}
strcmp(str_1, str_2)如果两个字符串一样则返回0!!
strcmp()函数有许多变体,它们的基本功能是相同的,都是比较两个字符串,但其它地方稍有差别。下表列出了C语言提供的与strcmp()函数类似的一些函数:
-----------------------------------------------------------------
函 数 名 作 用
-----------------------------------------------------------------
strcmp() 对两个字符串进行大小写敏感的比较
strcmpi() 对两个字符串进行大小写不敏感的比较
stricmp() 同strcmpi()
strncmp() 对两个字符串的一部分进行大小写敏感的比较
strnicmp() 对两个字符串的一部分进行大小写不敏感的比较
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函数代替strcmp()函数,则程序将认为字符串“ABC”等于“abc”
一些没用的小知识