Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带指针的函数_C++_Function_Pointers - Fatal编程技术网

C++ 带指针的函数

C++ 带指针的函数,c++,function,pointers,C++,Function,Pointers,我正在尝试解决一个练习,它要求一个数组,并计算该数等于两个相邻数的平均数的次数。我犯了一个愚蠢的错误,我无法理解,这让我头疼 #include<stdlib.h> #include<stdio.h> #include<string.h> #define N 5 void neighbors(int *arr, int dim, int *equal){ int *t; int *equal=0; int i; for(i=1;t[i]<=5;i+

我正在尝试解决一个练习,它要求一个数组,并计算该数等于两个相邻数的平均数的次数。我犯了一个愚蠢的错误,我无法理解,这让我头疼

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

#define N 5

void neighbors(int *arr, int dim, int *equal){

int *t;
int *equal=0;
int i;

for(i=1;t[i]<=5;i++){
    if(((t[i-1]+t[i+1])/2)==t[i])
        equal++;
    else
        continue;
}
printf("Elements -> %d", &equal);
}

int main(){


int array[N]={1,2,3,9,10};
int aux;

int neighbors(*array,N,&aux);     // here it says "expected a ')' and "too many                          //                                           initializers"


system("pause");
}
#包括
#包括
#包括
#定义n5
无效邻居(int*arr、int dim、int*equal){
int*t;
int*equal=0;
int i;

对于(i=1;t[i]在
int neighbories(*array,N,&aux);
处删除
int
,并将其更改为
neighbories(array,N,&aux);
,因为您传递的是指向数组的指针,而不是该数组第一个成员的值

您还在第11行重新声明了相等


并学习阅读编译器警告/错误!

int
放在
int-neights(*array,N,&aux);
并将其更改为
neights(array,N,&aux);
,因为您传递的是指向数组的指针,而不是该数组第一个成员的值

您还在第11行重新声明了相等

并学会阅读编译器警告/错误!

这样就可以了

neighbors(array,N,&aux);  
请注意,
aux
未定义。

仅此即可

neighbors(array,N,&aux);  

请注意,
aux
未定义。

此代码中还有许多错误:
t[i+1]因为i=5
不会给出您可能期望的结果。重新定义
equal
也会给出错误。最后,增加指针
equal
,但不增加值。这些是您可能需要重新考虑的事情。我没有提到您的标题不正确,也没有提到您可能需要使用
std::cout
和不
printf
(顺便说一句:参数错误)。请查看它可能会对您有所帮助。

此代码中还有许多错误:
t[i+1]因为i=5
不会给出您可能期望的结果。重新定义
equal
也会给出错误。最后,增加指针
equal
,但不增加值。这些是您可能需要重新考虑的事情。我没有提到您的标题不正确,也没有提到您可能需要使用
std::cout
和not
printf
(顺便说一句:参数错误)。请看一下它可能会对您有所帮助。

它说IntelliSense:int类型的参数与int*类型的参数不兼容。
[]它说IntelliSense:int类型的参数与int*类型的参数不兼容
在这里做什么?
[]
到底在这里做什么?非常感谢mistapink!此代码中还有许多错误;)t[i+1]因为i=5不会给出您可能期望的结果。重新定义equal也会给出错误。最后,增加指针equal而不是值。这些是您可能需要重新考虑的事情。我没有提到您的标题不正确,也没有提到您可能希望使用std::cout而不是printf(使用错误的参数)。请看一看,它可能会对您有所帮助。非常感谢mistapink!此代码中还有许多错误;)t[i+1]因为i=5不会给出您可能期望的结果。重新定义equal也会给出错误。最后,增加指针equal而不是值。这些是您可能需要重新考虑的事情。我没有提到您的标题不正确,也没有提到您可能希望使用std::cout而不是printf(使用错误的参数).看一看可能对你有帮助。