-1

一部の関数のヘッダー ファイルに関連する次のエラーが表示されますが、それらを解決する方法がわかりません。

prog8.c: In function 'main':
prog8.c:17: error: expected expression before ']' token
prog8.c:20: warning: ISO C90 forbids mixed declarations and code
prog8.c:21: error: expected expression before ']' token
prog8.c:25: warning: ISO C90 forbids mixed declarations and code
prog8.c:26: error: expected expression before ']' token
prog8.c:29: warning: ISO C90 forbids mixed declarations and code
prog8.c:30: error: expected expression before ']' token

ヘッダー ファイルのコードは次のとおりです。

#ifndef ARRAYFUNCTIONS_H_INCLUDED
#define ARRAYFUNCTIONS_H_INCLUDED

int arraySmallest(int [], int );

int arrayLargest(int [], int );

int arraySum(int [], int );

int arrayAverage(int [], int);

#endif

C ファイル:

#include <stdlib.h>
#include <stdio.h>
#include "ArrayFunctions.h"

/* Smallest */

int arraySmallest(int array[], int size)
{
int i, min = array[0];
for (i = 0; i < size; i++)
{
    if (array[i] < min)
    {
        min = array[i];
    }
}
return min;
}

/* Largest */

int arrayLargest(int array[], int size)
{
int i, max = array[0];
for (i = 0; i < size; i++)
{
    if (array[i] > max)
    {
        max = array[i];
    }
}
return max;
}

/* Sum */

int arraySum(int array[], int size)
{
int i, sum = array[0];
for (i = 0; i < size; i++)
{
    sum += array[i];
}
return sum;
}

/* Sum */

int arrayAverage(int array[], int size)
{
int i, avg = array[0], sum = array[0];
for (i = 0; i < size; i++)
{
    sum += array[i];
}
avg = sum / size
return avg;
}

ドライバーは次のとおりです。

#include <stdio.h>
#include "ArrayFunctions.h"

int main()
{

/* smallest */
int array[5] = {2, 8, 3, 4, 5};
printf("%d/n", (arraySmallest(array[], 5)));

/* largest */
int array2[5] = {2, 8, 3, 4, 5};
printf("%d/n", (arrayLargest(array2[], 5)));


/* sum */
int array3[5] = {2, 8, 3, 4, 5};
printf("%d/n", (arraySum(array3[], 5)));

/* average */
int array4[5] = {2, 8, 3, 4, 5};
printf("%d/n", (arrayAverage(array4[], 5)));

return 0;
}

事前に助けてくれてありがとう!

4

2 に答える 2

3

C ファイルの関数定義には、def 行の末尾にセミコロンがあります。

例えば:

8: int arrayLargest(int array[], int size);
于 2013-11-04T02:42:44.353 に答える
1

パラメータには配列を渡す必要がありますが、整数のみを渡します。

int array[5] = {2, 8, 3, 4, 5}; 
printf("%d/n", (arraySmallest(array[5], 5)));
// ---------------------------------^

これをすべての呼び出しで行います。単に削除し[5]ます。

于 2013-11-04T03:00:42.997 に答える