1.代码:
#include<iostream>
using namespace std;
int main()
{
char a/*操作*/;
int i/*计数工具*/,b=0/*老鼠会开心几天*/;
int e/*正常的来*/,f/*老鼠会悲伤几天*/;
int c=1/*老鼠来不来*/,d=0/*奶酪数目*/,g=0/*老鼠数目*/;
for (i=1;;i++)
{
scanf("%c",&a);
if(a=='$') break;
if(c==1)
switch(a)
{
case 'X': {e=1;printf("U");break; } //什么都不放的情况下,老鼠会正常地来,但是会毫无所获
case 'T': {f=2;d++;g++;printf("D");break; } //放下捕鼠夹,定会耗费一块奶酪,并且会打死一只老鼠,而且鼠群会悲伤两天,两天不会派出老鼠
case 'C': {b=2;d++;printf("!");break; } //只放下奶酪,老鼠会开心2天,并且耗费了一块奶酪,只是人会一无所获
}
else printf("-");//同理,以下的判断即为负收益的时候
if(b>0){b--;c=1;e=0;f==0;}//
else if(b<=0&&e==1) {c=0;e--;}//
else if(b<=0&&f>0) {c=0;f--;}//
else c=1;
}
printf("\n%d",g*10-d*3);
}
2.由于本人自身水平有限,所以本人参照刘凯同学的博客进行改编分析,日后需要提升自己独立思考的能力
3.以下是我的流程图
备注;在此同时,需要考虑负收益的情况,即老鼠悲伤的时候,并不会派出老鼠,此时便出现了亏损情况
备注;在此同时,需要考虑负收益的情况,即老鼠悲伤的时候,并不会派出老鼠,此时便出现了亏损的情况
4.运行结果正确截图