関数の呼び出し方に本当に戸惑っています。1つ以上の回答に応じて更新されたコード。現在のコードとビルドエラーは以下のとおりです。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//function prototypes
void signs(int x[], int size, int *negPtr, int *zeroPtr, int *posPtr);
double average(int x[], int size, int *greaterPtr);
int main()
{
//variable declarations
int zeroCounter, posCounter, negCounter, greaterThanAveCounter;
double ave;
int i;
int arr[63];
int size = 63;
int x[63], int size, int* negPtr, int* zeroPtr, int* posPtr, int* greaterPtr;
//seeding the random number generator function with the time
srand(time(NULL));
//filling the array with random numbers from the interval [-15, 40]
for(i=0; i<63; i++)
{
arr[i] = rand()%(40-(-15)+1)+(-15);
}
//printing the array to the screen 9 elements per line
for(i=0; i<63; i++)
{
if(i%9==0)
{
printf("\n");
}
printf("%5d",arr[i]);
}
//call function signs
signs (x, size, negPtr, zeroPtr, posPtr);
printf("\n\nThe number of elements that are negative is: %d\n",negCounter);
printf("The number of elements that are equal to zero is: %d\n",zeroCounter);
printf("The number of elements that are positive is: %d\n",posCounter);
//call function average
average(x, size, greaterPtr);
printf("The average of all the elements is: %.2f\n",ave);
printf("The number of elements that are greater than the average is: %d\n",greaterThanAveCounter);
return 0;
}
/***************************************************************************
signs:
This function finds the number of elements that are negative, positive and
equal to zero in an integer array. The number of elements that are negative,
positive and equal to zero are returned by 3 pointers that the function
receives.
Inputs
1. The integer array
2. The size of the aray
3. An integer pointer to the negative counter
4. An integer pointer to the zero counter
5. An integer pointer to the positive counter
***************************************************************************/
void signs(int x[], int size, int *negPtr, int *zeroPtr, int *posPtr)
{
int i;
for (i=0; i<size; i++)
{
if(x[i]<0)
{
(*negPtr)++;
}
else if (x[i]==0)
{
(*zeroPtr)++;
}
else
{
(*posPtr)++;
}
}
}
/***************************************************************************
average:
This function finds the average and the number of elements that are greater
than the average in an integer array. The function returns the value of the
average and returns the number of elements that are greater than the average
using a pointer that the function should receive.
Inputs
1. The integer array
2. The size of the aray
3. An integer pointer to the greater than average counter
***************************************************************************/
double average(int x[], int size, int *greaterPtr)
{
int i;
double ave;
int sum=0;
for (i=0; i<size; i++)
{
sum+=x[i];
}
ave = (double)sum/size;
*greaterPtr = 0;
for (i=0; i<size; i++)
{
if(x[i]>ave)
{
(*greaterPtr)++;
}
}
return ave;
}
新しいエラー
- (32):エラーC2059:構文エラー:'type'
- (35):警告C4244:'関数':'time_t'から'unsigned int'への変換、データの損失の可能性
(54):エラーC2065:'negPtr':宣言されていない識別子
(54):警告C4047:'function':'int *'は、
'int'とは間接レベルが異なります- (54):警告C4024:'記号':正式なパラメーターと実際のパラメーターの異なるタイプ3
- (54):エラーC2065:'zeroPtr':宣言されていない識別子
(54):警告C4047:'function':'int *'は、'int'とは間接レベルが異なります
(54):警告C4024:'記号':正式なパラメーターと実際のパラメーターの異なるタイプ4
- (54):エラーC2065:'posPtr':宣言されていない識別子
(54):警告C4047:'function':'int *'は、'int'とは間接レベルが異なります
(54):警告C4024:'記号':正式なパラメーターと実際のパラメーターの異なるタイプ5
(62):エラーC2065:'greaterPtr':宣言されていない識別子
(62):警告C4047:'function':'int *'は、
'int'とは間接レベルが異なります- (62):警告C4024:'平均':正式なパラメーターと実際のパラメーターの異なるタイプ3
- 1>1>ビルドに失敗しました。