1.代码:#include<stdio.h>
int main(void)
{
int a=1,happy=0, unhappy=0,count1=0,count2=0,sad=0;
char c;
scanf("%c",&c);
while(c!='$'){
if(a==1)
switch(c){
case 'X': printf("U");unhappy=1;break;
case 'T': printf("D");sad=2;count1++;count2++;break;
case 'C': printf("!");happy=2;count2++;break;
}
else
printf("-");
if(happy>0) {
happy--;
a=1;
unhappy=0;
sad=0;
}
else if(happy>0&&unhappy>0){
happy--;
unhappy--;
a=1;
}
else if(happy>0&&sad>0){
happy--;
sad--;
a=1;
}
else if (happy<=0&&unhappy>0){

        happy++;
        a=0;
    }
    else if(happy<=0&&sad>0){

        sad--; 
        a=0;
    }
    else if(happy==0&&unhappy==0&&sad==0)
    a=1;
    scanf("%c",&c);
}
printf("\n%d",count1*10-count2*3);
return 0;} 

2.问题与方法
问题:刚开始我以为当老鼠进入兴奋期时,不高兴期和伤心期不会有用,于是导致代码一直过不了,后来经过反复看题目才发现,不高兴期和伤心期不是没有作用,而是三个时期放在了一起,当进入兴奋期后,就会有两天同时出来老鼠,然后进去悲伤期,最后进入伤心期。
3.流程图

4.运行编辑图