gpt4 book ai didi

c - 查找 NxN 网格中的所有路径

转载 作者:行者123 更新时间:2023-11-30 16:40:20 27 4
gpt4 key购买 nike

想象一个机器人坐在 NxN 网格的左上角。机器人只能向三个方向移动:右、下、斜下。机器人必须到达 NxN 网格的右下角。想象某些方 block 是“禁区”或“偏移”,这样机器人就无法踩到它们。编写一个程序来确定机器人可能的路径数量。

这是我的代码:

#include<stdio.h>
#include<string.h>

int abc[50]={}, count=0;
int ak[5][5];

void called(int a,int b,int c){

if(a==c-1 && b==c-1){
int i=0;
printf("( 0 , 0 ) - ");
for(i=0;i<count;i+=2){
if(i==count-2)
printf("( %d , %d )",abc[i],abc[i+1]);
else
printf("( %d , %d ) - ",abc[i],abc[i+1]);
}
printf("\n");
abc[count--]=-1;
abc[count--]=-1;
return;
}

else{
if(a!=c-1 && ak[a][b]!=1){
abc[count++]=a+1;
abc[count++]=b;
called(a+1,b,c);
}
if(b!=c-1 && ak[a][b]!=1){
abc[count++]=a;
abc[count++]=b+1;
called(a,b+1,c);
}
if(a!=c-1 && a!=c-1 && ak[a][b]!=1){
abc[count++]=a+1;
abc[count++]=b+1;
called(a+1,b+1,c);
}
abc[count--]=-1;
abc[count--]=-1;
}

}


void main(){

int a,b,i,j,n;

printf("Enter the size of the grid\n");
scanf("%d",&n);

if(n>=0){
for(i=0;i<n;i++)
for(j=0;j<n;j++)
ak[i][j]=0;
printf("Enter the grid points that are offsets\n");
scanf("%d",&a);
scanf("%d",&b);
while(a!=-1 && b!=-1){
ak[a][b]=1;
scanf("%d",&a);
scanf("%d",&b);
}
printf("The paths for the robot are\n");
called(0,0,n);
}

else
printf("Invalid Input");

getchar();

}

在运行时,会弹出错误消息--

Program terminated due to "Segmentation fault" (11)

最佳答案

您将网格大小作为输入,但您也将其硬编码为 5 * 5。如果用户尝试输入大于 5 的数字,您的程序应该因“段错误”而崩溃。

关于c - 查找 NxN 网格中的所有路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704355/

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