C++ C++;:函数调用中的参数太少
我的代码有问题。当我调用函数时。编译器显示此错误: “函数调用中的参数太少” "C++ C++;:函数调用中的参数太少,c++,C++,我的代码有问题。当我调用函数时。编译器显示此错误: “函数调用中的参数太少” " bool check_matrix(int x, int y){ if (x<ROWS || y<COLUMNS) return true; return false; } bool compute_duplicate(int x, int y, int array[], int array_length){ for (int i=0; i< a
bool check_matrix(int x, int y){
if (x<ROWS || y<COLUMNS)
return true;
return false;
}
bool compute_duplicate(int x, int y, int array[], int array_length){
for (int i=0; i< array_length; i++)
{
if(array[i]==compute_address(x,y))
return false;
}
return true;
}
////////////////////////////////////
for (int i=0; i<array_length; i++){
if ((check_matrix(x,(y+1))==true) && compute_duplicate((x,(y+1), array, array_length)==false)) {
array[i]= compute_address(x,(y+1));
y++;
d++;
i++;
}
if ((check_matrix((x+1),y)==true) && compute_duplicate((x+1),y, array, array_length)==false)) {
array[i]=compute_address((x+1),y);
x++;
d++;
i++;
}
array_length=d;
}
bool检查矩阵(int x,int y){
如果(x以下函数调用的括号放错了位置
compute_duplicate((x,(y+1), array, array_length)==false)
应该是
(compute_duplicate(x,(y+1), array, array_length)==false)
同样的错误存在于循环中的两个地方。您的问题在于:
compute_duplicate((x,(y+1), array, array_length)==false))
也就是说,您正试图使用一个类型为bool
的参数调用compute\u duplicate
,这是有效表达式的结果(x,(y+1),数组,数组长度)==false
。注意,逗号在C/C++中是一个运算符,因此上面表达式的有效结果是array\u length==false
这可能意味着:
compute_duplicate(x,(y+1), array, array_length)==false
compute\u duplicate((x,(y+1),array,array\u length)==false))
正在调用表达式(x,(y+1),array,array\u length)==false)
上的compute\u duplicate
,该表达式是一个布尔值,当且仅当(x,(y+1),array,array\u length)
为false
。这不是您想要的。这里有一对额外的大括号:
compute_duplicate((x,(y+1), array, array_length)==false)
使编译器认为您传递了一个bool作为参数。松开它们,错误应该得到修复。compute\u duplicate((x,(y+1),array,array\u length)==false)
使用一个参数调用compute\u duplicate
,结果是(x,(y+1),array,array\u length)==false
你是说(计算重复(x,(y+1),数组,数组长度)=false)
(只是
()的排列略有不同)S,但C++的一个非常不同的部分是什么?哪一行给出了一个错误?给出实际的编译器错误,而不是一小部分。如果你认为需要比较布尔和<代码> true ,那么请记住比较的结果也是布尔的,所以你需要写<代码>((校验矩阵(x,(y + 1))=真)=真)。
。更严重的是,如果你没有用所有不必要的==true/false
,以及这些比较周围的括号使代码不可读,那么问题就很明显了。@Yuushi:很明显,函数是:check\u matrix&compute\u replicate。你能看到另一个函数吗?我不知道为什么问了一个问题后,我问了中间否决:(@mahdimb:有人出于某种原因不喜欢这个问题(太简单?太多符号?不完整的信息?),他否决了这个问题;其余的被称为“”:)但事实上,你的问题并不比大多数关于SO==>的问题更糟,所以你从我这里得到了一个“+1”-为了大公无私;)