0分求助

P11228 [CSP-J 2024] 地图探险

Aphrodite2 @ 2024-10-27 16:09:26

如题,感觉没有什么错的空间但是就是错了

#include<stdio.h>
int main(){
    int n, m, k, x, y, d;
    char a[1002][1002];
    int no, i, j, u;
    scanf("%d", &no);
    for(i = 1; i <= no; i++){
        int num = 0;
        scanf("%d%d%d", &n, &m, &k);
        scanf("%d%d%d", &x, &y, &d); 
        for(j = 0; j < n; j++){
            for(u = 0; u < m; u++){
                scanf("%c", &a[j][u]);
            }
            printf("\n");
        }
//      printf("%c", a[0][0]);
        a[x][y] = '$';
        for(j = 1; j<=k; j++){
            if(d == 0){
                if(a[x][y+1]!='.'&&a[x][y+1]!='$'){
                    d ++; 
                    j --; 
                    continue;
                } 
                y ++;
                a[x][y] = '$';
            }
            else if(d == 1){
                if(a[x+1][y]!='.'&&a[x+1][y]!='$'){
                    d ++; 
                    j --; 
                    continue;
                } 
                x ++;
                a[x][y] = '$';
            }
            else if(d == 2){
                if(a[x][y-1]!='.'&&a[x][y-1]!='$') {
                    d ++; 
                    j --; 
                    continue;
                }
                y --;
                a[x][y] = '$';
            }
            else if(d == 3){
                if(a[x-1][y]!='.'&&a[x-1][y]!='$') {
                    d = 0; 
                    j --; 
                    continue;
                }
                x --;
                a[x][y] = '$';
            }
        }
        for(j = 0; j <= n; j++){
            for(u = 0; u <= m; u++){
                if(a[j][u] == '$') num ++;
            }
        }
        printf("%d\n", num);
    }
    return 0;
}

by litangzheng @ 2024-10-27 16:12:58

@Aphrodite2 scanf会读回车


by lty2023 @ 2024-10-27 16:15:05

#include<stdio.h>
int main(){
    int n, m, k, x, y, d;
    char a[1002][1002];
    int no, i, j, u;
    scanf("%d", &no);
    for(i = 1; i <= no; i++){
        int num = 0;
        scanf("%d%d%d", &n, &m, &k);
        scanf("%d%d%d", &x, &y, &d); 
        for(j = 0; j < n; j++){
            for(u = 0; u < m; u++){
                scanf("%c", &a[j][u]);
            }
            printf("\n");\\这行删掉
        }
//      printf("%c", a[0][0]);
        a[x][y] = '$';
        for(j = 1; j<=k; j++){
            if(d == 0){
                if(a[x][y+1]!='.'&&a[x][y+1]!='$'){
                    d ++; 
                    j --; 
                    continue;
                } 
                y ++;
                a[x][y] = '$';
            }
            else if(d == 1){
                if(a[x+1][y]!='.'&&a[x+1][y]!='$'){
                    d ++; 
                    j --; 
                    continue;
                } 
                x ++;
                a[x][y] = '$';
            }
            else if(d == 2){
                if(a[x][y-1]!='.'&&a[x][y-1]!='$') {
                    d ++; 
                    j --; 
                    continue;
                }
                y --;
                a[x][y] = '$';
            }
            else if(d == 3){
                if(a[x-1][y]!='.'&&a[x-1][y]!='$') {
                    d = 0; 
                    j --; 
                    continue;
                }
                x --;
                a[x][y] = '$';
            }
        }
        for(j = 0; j <= n; j++){
            for(u = 0; u <= m; u++){
                if(a[j][u] == '$') num ++;
            }
        }
        printf("%d\n", num);
    }
    return 0;
}

|