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
和notprintf
(顺便说一句:参数错误)。请看一下它可能会对您有所帮助。它说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(使用错误的参数).看一看可能对你有帮助。