Reputation: 21
Hey guys, I was assigned to create a program that creates n arrays composed by 10 random integers. The the program should sum all the integers and display the result. After, it has to verify which of the sums is the greatest and it has to display that array and the result. Im having troubles getting it done and would like to get some help! Thanks once again. Here is my code so far:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double random(unsigned int &seed);
unsigned int seed = 5;
void generateData(int set[10]);
int sumData(int set[10]);
void checkData(int sumResult, int arrayNumber);
int main (int argc, char * const argv[]) {
int arrayNumber, sumResult;
int set[10];
do {
cout << "Number of Arrays to Compare: " << endl;
cin >> arrayNumber;
} while (arrayNumber < 0);
for (int i = 0; i < arrayNumber; ++i) {
generateData(set);
sumResult = sumData(set);
cout << "Sum --> " << sumResult << endl;
checkData(sumResult, arrayNumber);
}
return 0;
}
double random(unsigned int &seed) {
const int MODULUS = 15749;
const int MULTIPLIER = 69069;
const int INCREMENT = 1;
seed = ((MULTIPLIER * seed) + INCREMENT) % MODULUS;
return double(seed) / double(MODULUS);
}
void generateData(int set[10]) {
for (int i = 0; i < 10; ++i) {
set[i] = int (5 + 6 * random(seed));
cout << set[i] << " || ";
}
}
int sumData(int set[10]) {
int sumTotal = 0;
for (int i = 0; i < 10; ++i)
sumTotal = sumTotal + set[i];
return sumTotal;
}
void checkData(int sumResult, int arrayNumber) {
int largerNumber;
int tempSet[2];
for (int i = 0; i < arrayNumber; ++i) {
if (sumResult > largerNumber) {
tempSet[i] = sumResult;
}
}
}
Upvotes: 2
Views: 298
Reputation: 1
n array of size 10 each can e made this way in c#
int n;
n= Convert.ToInt32(Console.ReadLine());
int [,] mat=new int [n ,10];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < 10; j++)
mat[i,j] = 0;
}
Upvotes: 0
Reputation: 2004
To create arrays of arrays of ints an easy way is to do the following:
int **createArrayOfArrays(int number, int lengthOfEach)
{
int **array_of_arrays = (int**) malloc(sizeof(int*) * number);
int ix;
for(ix = 0; ix < number; ix++)
{
array_of_arrays[ix] = (int*) malloc(sizeof(int) * lengthOfEach);
}
return array_of_arrays;
}
Don't forget to free all the memory at the end, you need to free each array and the array of arrays (one free per malloc).
Upvotes: 0
Reputation: 455000
Your question reads
create a program that creates n arrays composed by 10 random integers....
int
array of size 10
. What you should
be doing is allocate a 2D array of
size arrayNumber X 10
, call it say
set
.arrayNumber
named say,
sumArray
to hold the sum of each
array. so sumArray[i]
will be sum of all the elements of the ith
array in set
.maxIndex
) in the sumArray
maxIndex
in set
, which will be array having
max sum.Upvotes: 2