0

私は、配列を要求し、その数が2つの隣人の平均と等しい回数を数える演習を解決しようとしています。理解できない愚かなエラーが発生し、頭痛の種になっています。

#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");
}

ヒントを教えてください。ありがとう!

4

3 に答える 3

2

その配列の最初のメンバーの値ではなく、配列へのポインターを渡すため、 intatをドロップしてint neighbors(*array,N,&aux);に変更します。neighbors(array,N,&aux);

また、11 行目で equal を再宣言しました。

そして、コンパイラの警告/エラーを読むことを学びましょう!

于 2013-03-13T23:26:53.397 に答える
1

これだけで済みます。

neighbors(array,N,&aux);  

aux未定義であることに注意してください。

于 2013-03-13T23:28:14.660 に答える
1

このコードにはさらに多くのエラーがあり t[i+1] for i=5ます。期待した結果が得られません。再定義equalしてもエラーが発生します。最後に、ポインタをインクリメントしますequalが、値はインクリメントしません。これらは、再考する必要があるかもしれないものです。std::coutヘッダーが正しくないことや、使用したくない場合があることについては言及しませんでしprintfた(ところで:間違ったパラメーターを使用)。http://codepad.org/MRh6ckbLをご覧ください。役立つかもしれません。

于 2013-03-13T23:42:23.747 に答える