c - 二维矩形网格
问题描述
我尝试在https://nus.kattis.com/problems/apples解决以下问题,但我的代码没有通过测试用例。我是 C 的新手,我不确定我哪里出错了。我的代码如下:
#include <stdio.h>
int main(){
int r,c;
scanf("%d",&r);
scanf("%d",&c);
char arr[r][c];
for (int i=0; i<r;i++){
for(int j=0;j<c;j++){
if(arr[i][j]=='a' && arr[i+1][j]=='.'){
arr[i][j] = '.';
arr[i+1][j] = 'a';
}
}
}
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
printf("%c",arr[i][j]);
}
}
}
如果我不得不猜测,我会检查 arr[i][j] 是否等于 'a',因为 arr[i][j] 处的 'a' 与通用 'a' 的地址不同'。
解决方案
您的代码未正确读取输入(网格的内容)。在检查条件和执行更多任务之前,您必须使用 scanf 或其他输入函数从标准输入中读取。
虽然,如果您声明r * c
char 数组的大小,将输入推送给它们并运行代码,它会部分检查r
第 th 索引arr[i+1][j]=='.'
。您应该通过声明数组稍大或修改逻辑来避免这种情况。
推荐阅读
- css - 网格,无效的属性值
- python - 无法正确获得轮廓
- c# - 为对象创建 html 助手
- linux - 在 bash/sed 中修剪输入
- apache - apache poi(3.15版)中的sumproduct函数,如果条件不起作用
- angularjs - 将 Json 数据从 Angularjs 发布到 MVC 控制器
- javascript - 静音自动播放在 iphone Safari 11.3 上不起作用
- javascript - Phaser 3 中的暂停和恢复游戏
- r - xaringan:使用嵌套格式代码生成的表
- angular - CustomModel[] 类型中缺少属性“XYZ”