#include <stdio.h>
int main()
{
int i,a=2,b=1,c=0,money=0;
char d[70],C,T,X,$;
for(i=0;d[i]!='$';i++)
{
scanf("%c ",&d[i]);
printf("%c\n",d[i]);
if(d[i]=='$'){break;}
}
i=0;
while(d[i]!='$')
{
if(a>1||c>1)//老鼠出动
{
if(d[i]=='T'){printf("D");money=money+7;i++;a=0;c--;}
else if (d[i]=='X'){printf("U");i++;a=1;c--;}
else{printf("!");i++;a=1;c=3;}
}else{//老鼠不出动
printf("-");i++;
a++;c--;
}
}
没看懂题主的 X T C 是表示什么,所以while()里的算法就无法判断准确与否,修改如下,供参考:
#include <stdio.h>
int main()
{
int i,a=2,b=1,c=0,money=0;
char d[70];//;,C,T,X,$;
for(i=0;;i++)//for(i=0;d[i]!='$';i++)
{
scanf("%c",&d[i]);
if(d[i]=='$') {break;}
printf("%c\n",d[i]);
}
i=0;
while(d[i]!='$')
{
if(a>1||c>1)//老鼠出动
{
if(d[i]=='T'){
printf("D");
money=money+7;
i++;
a=0;
c--;
}
else if (d[i]=='X'){
printf("U");
i++;
a=1;
c--;
}
else {
printf("!");
i++;
a=1;
c=3;
}
}else{//老鼠不出动
printf("-");
i++;
a++;
c--;
}
}
return 0;
}
试试这个:
#include <stdio.h>
int main()
{
int i, a = 2, b = 1, c = 0, money = 0;
char d[70], C, T, X, $;
for (i = 0; d[i] != '$'; i++)
{
scanf("%c", &d[i]);
if(d[i] == '\n')
scanf("%c", &d[i]);
printf("%c\n", d[i]);
if (d[i] == '$') { break; }
}
i = 0;
while (d[i] != '$')
{
if (a > 1 || c > 1)//老鼠出动
{
if (d[i] == 'T') { printf("D"); money = money + 7; i++; a = 0; c--; }
else if (d[i] == 'X') { printf("U"); i++; a = 1; c--; }
else { printf("!"); i++; a = 1; c = 3; }
}
else {//老鼠不出动
printf("-"); i++;
a++; c--;
}
}
system("pause");
return 0;
}