gpt4 book ai didi

c - C语言中的Gridland Metro黑客排名矩阵

转载 作者:行者123 更新时间:2023-11-30 15:00:36 25 4
gpt4 key购买 nike

我用 C 语言编写了这段代码,但我不明白为什么它不起作用,所以请帮助我。这是问题: https://www.hackerrank.com/challenges/gridland-metro

int main() {
long int n,m,k,c1,c2,r,comp=0;

scanf("%ld %ld %ld",&n,&m,&k);
long int mat[n][m];
for(long int i=0;i<k;i++) {
scanf("%ld %ld %ld",&r,&c1,&c2);

for(long int i=1;i<=n;i++) {
for(long int j=1;j<=m;j++) {
if(j<c2 && j>c1 && i==r)
{
mat[i][j]=1;
} else {
mat[i][j]=0;
}
}
}
}
for(long int b=1;b<=n;b++){
for(int f=1;f<=m;f++){
if(mat[b][f]==0)
{
comp++;
}
}
}
printf("%ld",comp);
}

`

最佳答案

记住数组是 "base 0"在 C 中。您正在数组范围之外写入。

long int mat[n][m];
for(long int i=0;i<k;i++){
scanf("%ld %ld %ld",&r,&c1,&c2);

for(long int i=1;i<=n;i++){
for(long int j=1;j<=m;j++){
if(j<c2 && j>c1 && i==r)
{
mat[i][j]=1; /* HERE */

改变

    for(long int i=1;i<=n;i++){
for(long int j=1;j<=m;j++){

    for(long int i=1;i<n;i++){
for(long int j=1;j<m;j++){

同样的

 for(long int b=1;b<=n;b++){
for(int f=1;f<=m;f++){
if(mat[b][f]==0)

另外,main()不是有效签名,请更改为int main(void)

关于c - C语言中的Gridland Metro黑客排名矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41999695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com