0分求助
查看原帖
0分求助
1467259
Aphrodite2楼主2024/10/27 16:09

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

#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;
}
2024/10/27 16:09
加载中...