The program compiles and works all the way until the multiplecheck function, any help would be great. The program is not finished yet and I am new to C programming so I know the program may not be the most efficient.
Code:
#include<stdio.h>
#include<math.h>
#define ARRAYSIZE 30
int getData(int[]);
void printData(int[],int);
int multipleCheck(int[],int);
int multipleCount(int[],int,int,int);
int main()
{
int data[ARRAYSIZE];
int num_data;
int multi_ct;
num_data = getData(data);
printData(data, num_data);
multi_ct = multipleCheck(data,num_data);
return(0);
}
int getData(int array[])
{
int lcv; //local counting variable
int ct; //the number of times that the user enters a number
lcv = 0;
ct = 1;
while (lcv < ARRAYSIZE)
{
printf("Enter the data #%d or -1: ", lcv + 1);
scanf("%d", &array[lcv]);
ct++;
if (array[lcv] < 0)
{
array[lcv] = 0;
lcv = 49;
ct--;
}
lcv++;
}
printf("\n");
return(ct);
}
void printData(int array[],int num_d)
{
int lcv;
printf("Data entered: ");
for (lcv = 0; lcv < (num_d - 1); lcv++)
{
printf("%d ", array[lcv]);
}
printf("\n");
}
int multipleCheck(int array[], int num_d)
{
int lcv;
int lcv2;
int ct;
int ctmax;
int hold;
ctmax = 0;
for (lcv = 0; lcv < (num_d - 2); lcv++)
{
for (lcv2 = lcv + 1; lcv2 < (num_d - 1); lcv2++)
{
hold = array[lcv] * array[lcv2];
ct = multipleCount(array,lcv,hold,num_d);
if (ct > ctmax)
{
ctmax = ct;
}
}
}
printf("\n%d\n", ctmax);
return (ctmax);
}
int multipleCount(int array[], int start, int num_p,int num_d)
{
int lcv;
int lcv2;
int ct;
ct = -1;
for (lcv = 0; lcv <= (num_d - 1); lcv++)
{
for (lcv2 = lcv + 1; lcv <= num_d; lcv2++)
{
if ((array[lcv] * array [lcv2]) == num_p)
{
ct++;
}
}
}
return(ct);
}
Comment