# Thread: array problems

1. ## array problems

Here is my assignment:

Assignment #15
CSC190Web
Spring 2002
__________________________________________________ ______________________

The purpose of this assignment is work with an array as well as writing several free functions.
It is assumed that the array will store N random numbers. The value of N will be entered from the keyboard using a free function and must be limited to having a value in the range 1 through 50. N also represent how many random numbers will be stored in our array.
__________________________________________________ ______________________

You are required to write the free functions for the following program as well as execute these free functions to be assured that they are correct.

#include <iostream.h>
#include <stdlib.h>
#include <time.h>

const int MaxSize = 50;

// The following are prototypes declaring functions invoked doing the
// execution of function main.

void HowManyRandomNumbers(int& N);
void GenerateRandomNumbers( int A[], int N );
int CountEvenNumbers( int A[], int N );
void DisplayArray ( int A[], N);

void main()
{
srand(time(0));

// Create the array Arr:
int Arr[MaxSize];
int N, Count;

// Have the user enter a count on the number of random numbers he/she
// wishes to generate.
HowManyRandomNumbers( N );

// Store N random numbers in array Arr.
GenerateRandomNumbers( Arr, N );

// Count the number of even integers stored in array Arr.
Count = CountEvenNumbers( Arr, N );

// Display the N values stored in array Arr and the count on the number
// of even integers stored in array Arr.
DisplayArray(Arr, N);
cout << "\n Count on even integers: " << Count << endl;
}

2. here is what I've done:
Code:
```#include <iostream.h>
#include <stdlib.h>
#include <time.h>

const int  MaxSize = 50;

void main()
{

// The following are prototypes declaring functions invoked doing the
// execution of function main.

void  HowManyRandomNumbers(int& N);
void  GenerateRandomNumbers( int A[], int N );
int   CountEvenNumbers( int A[], int N );
void  DisplayArray ( int A[], N);

void main()
{
srand(time(0));

// Create the array Arr:
int   Arr[MaxSize];
int   N, Count;

// Have the user enter a count on the number of random numbers he/she
// wishes to generate.
HowManyRandomNumbers( N );

// Store N random numbers in array Arr.
GenerateRandomNumbers( Arr, N );

// Count the number of even integers stored in array Arr.
Count = CountEvenNumbers( Arr, N );

// Display the N values stored in array Arr and the count on the number
// of even integers stored in array Arr.
DisplayArray(Arr, N);
cout << "\n Count on even integers: " << Count << endl;
}

// ------------------------------------------------------------------ //
//                          Function Definitions                      //
// ------------------------------------------------------------------ //

// Purpose: This function asks for and inputs the amount of random numbers
// that the user would like used in the program.
void HowManyRandomNumbers(int& N)
{
cout << "How many random numbers would you like generated?";
cin >> N >> endl;
}

// Purpose: This function generates random numbers that are assigned as
// elements of array Arr.
void GenerateRandomNumbers(int Arr[], int N )
{
for( int N = 0; N < MaxSize; ++N)
{
Arr[I] = rand() % 1000;
}

}

// Purpose: This function counts and returnsthe even numbers inn array Arr.
int   CountEvenNumbers( int Arr[], int N )
{

long  Even = 0;

for( int N = 0; N < MaxSize; ++N)
{
if( Arr[N] % 2 == 0 )
{
Even ++;
}
}

return Even;
}

// Purpose: This function displays the elements of array Arr.
void DisplayArray (int Arr[], int N)
{
cout << "Array elements: " << endl;
for(int N = 0; N < MaxSize; ++N)
{
cout << "Arr[" << N << "] = " << Arr[I] << endl;
}```

3. if anybody has any idea what is still wrong, it would be greatly appreciated... I am screwed if I don't pass this class, and my grade is hurting a little bit as it stands... Please help me!

4. in the first function defintion make sure input is in the desired range:

Code:
```    void HowManyRandomNumbers(int& N)
{
N = -1000;
while(N < 1 || N > 50)
{
cout << "How many random numbers would you like
generated?" << endl;
cin >> N;
}
}```

In your other function definitions substitute a diferent value for N and use N in place of MAXSIZE. This allows you to only loop through as many values as used, not as many values as could be used. IF N is less than MAXSIZE these functions will do some weird things the way you have it.

5. Code:
```>void main()
>{
//You have void main() twice.  Take the first one out.

>void  DisplayArray ( int A[], N);
//Should be:
void  DisplayArray ( int A[], int N);

>void main()
//This is wrong.  main() returns an int.
int main(void)

>    cin >> N >> endl;
//No endl here
cin >> N;

>for( int N = 0; N < MaxSize; ++N)
for( int I = 0; I < N; ++I)

>for( int N = 0; N < MaxSize; ++N)
for( int i = 0; i < N; ++i)

>if( Arr[N] % 2 == 0 )
if( Arr[i] % 2 == 0 )

>for(int N = 0; N < MaxSize; ++N)
for(int I = 0; I < N; ++I)```

6. ok... here's what I've got now,
Code:
```#include <iostream.h>
#include <stdlib.h>
#include <time.h>

const  int  MaxSize = 50;

// The following are prototypes declaring functions invoked doing the
// execution of function main.
void   GenerateRandomNumbers( int A[] );
double CountEvenNumbers( int A[] );
void   DisplayArray ( int A[], double Avg );
void HowManyRandomNumbers(int& N);

void main()
{

srand(time(0));

// Create the array Arr:
int     Arr[MaxSize];
int  Count, N;

// Have the user enter a count on the number of random numbers he/she
// wishes to generate.
HowManyRandomNumbers( N );

// Initialize the array with random numbers.
GenerateRandomNumbers( Arr );

// Compute the average value for elements of array Arr.
Count = CountEvenNumbers( Arr );

// Display the values of array Arr and Average.
DisplayArray(Arr, Count);
// The following halts the program waiting for the
// user to press the '"Enter Key" to quit.
cout << "\n\n";
cout << "Press Enter key to quit: ";
cin.ignore(80, '\n');
cin.get();

}

// ------------------------------------------------------------------ //
//                          Function Definitions                      //
// ------------------------------------------------------------------ //

// Purpose: This function asks for and inputs the amount of random numbers
// that the user would like used in the program.
void HowManyRandomNumbers(int& N)
{
N = -1000;
while(N < 1 || N > 50)
{
cout << "How many random numbers would you like generated?" << endl;
cin >> N;
}
}

void GenerateRandomNumbers(int A[])
{
// Purpose: This function generates random numbers that are assigned as
// elements of array A.
for( int I = 0; I < MaxSize; ++I)
{
A[I] = rand() % 50;
}

}

double CountEvenNumbers(int A[])
{
// Purpose: This function counts the number of even values in array A.

long  Even = 0;

for( int I = 0; I < MaxSize; ++I)
{
if(A[I] % 2 == 0) Even += 1;
}

return  Even;
}

void DisplayArray (int A[], double Evens)
{
// Purpose: This function displays the elements of array A and the quantity of
// Even values.

cout << "Array elements: " << endl;
for(int I = 0; I < MaxSize; ++I)
{
cout << "A[" << I << "] = " << A[I] << endl;
}

cout << "\n" << "Even Numbers: " << Evens << endl;
}```
I've been working on it for several hours now... my problem I still have though is getting the GenerateRandomNumbers function to only generate N numbers... also, on the assignment when the program is calling on some of the functions the N is included in the parenthesis. whenever I try to do this, I get error messages.

7. pass N to generateRandomNumbers, COuntEvenNumbers, and DisplayArray. Then replace each MaxSize within those functions with N. Change MaxSize back to local to main().

8. thanks... I went in and talk to my teacher last night, and he told me basically the same

Popular pages Recent additions