为啥我第二个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;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;
}