gpt4 book ai didi

C - 无法将 1 个参数从 int 转换为 int[][4]

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

我的C编译器出现错误,我无能为力,我上网寻找解决方案,但未能解决问题

第一个错误:错误 C2664:'int get_min_distance(int *[][4],int,int,int,int)':无法将参数 1 从 'int' 转换为'int *[][4]'

第二个错误:IntelliSense:“int”类型的参数与“int (*)[4]”类型的参数不兼容

两个错误都在一行

代码:

#include<stdio.h>
#define inf 100000
int get_min_distance(int a[4][4], int b, int c, int d, int e);



int main(){
int ras = 0;
scanf("%d", &ras);

int yal = 0;
scanf("%d", &yal);

int mabda = 0;
scanf("%d", &mabda);

int magsad = 0;
scanf("%d", &magsad);


int gf[4][4];
gf[0][0] = 0;
gf[0][1] = 1;
gf[0][2] = inf;
gf[0][3] = 1;
gf[0][4] = 5;
gf[1][0] = 9;
gf[1][1] = 0;
gf[1][2] = 3;
gf[1][3] = 2;
gf[1][4] = inf;
gf[2][0] = inf;
gf[2][1] = inf;
gf[2][2] = 0;
gf[2][3] = 4;
gf[2][4] = inf;
gf[3][0] = inf;
gf[3][1] = inf;
gf[3][2] = 2;
gf[3][3] = 0;
gf[3][4] = 3;
gf[4][0] = 3;
gf[4][1] = inf;
gf[4][2] = inf;
gf[4][3] = inf;
gf[4][4] = 0;



int distance = get_min_distance(gf [4][4], ras, yal, mabda, magsad); //Error is here on "gf [4][4]"
printf("%d", distance);


}


int get_min_distance(int gf[4][4], int ras, int yal, int mabda, int magsad){

int min = inf;
int i = ras;
int A[5];

if (mabda == magsad){
return 0;
}
if (yal >= ras - 1){
return inf;
}
for (int i = 0; i < ras; i++){
if (gf[i][magsad] != 0 && gf[i][magsad] != inf){
A[i] = gf[i][magsad] + get_min_distance(gf, ras, yal + 1, mabda, i);
if (min>A[i] && A[i] > 0){
min = A[i];
}
}
}
return min;
}

调用get_min_distance函数时发生错误任何想法?谢谢

最佳答案

提供数组名称作为参数

int distance = get_min_distance(gf, ras, yal, mabda, magsad);     
^^^

数组的初始化也是无效的

int gf[4][4];
gf[0][0] = 0;
gf[0][1] = 1;
gf[0][2] = inf;
gf[0][3] = 1;
gf[0][4] = 5;
^^^
gf[1][0] = 9;
gf[1][1] = 0;
gf[1][2] = 3;
gf[1][3] = 2;
gf[1][4] = inf;
^^^
gf[2][0] = inf;
gf[2][1] = inf;
gf[2][2] = 0;
gf[2][3] = 4;
gf[2][4] = inf;
^^^
gf[3][0] = inf;
gf[3][1] = inf;
gf[3][2] = 2;
gf[3][3] = 0;
gf[3][4] = 3;
^^^
gf[4][0] = 3;
^^^
gf[4][1] = inf;
^^^
gf[4][2] = inf;
^^^
gf[4][3] = inf;
^^^
gf[4][4] = 0;
^^^^^^

因为索引的有效范围是[0, 3]

关于C - 无法将 1 个参数从 int 转换为 int[][4],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555607/

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