Added getSum and getProd functions

This commit is contained in:
2019-03-10 18:39:51 -04:00
parent a494acf34f
commit 5eb4931002
2 changed files with 48 additions and 0 deletions

View File

@@ -298,4 +298,28 @@ bool isSortedDynamicInt64Array(struct DynamicInt64Array* ary){
return true; return true;
} }
//This function returns the sum of all elements in a DynamicInt64Array
int64_t getSumDynamicInt64Array(struct DynamicInt64Array* ary){
int64_t sum = 0;
//Look through every element in the array, adding the numbers to a running sum
for(uint64_t location = 0;location < ary->size;++location){
sum += ary->ptr[location];
}
//Return the sum
return sum;
}
//This function returns the product of all elements in a DynamicInt64Array
int64_t getProdDynamicInt64Array(struct DynamicInt64Array* ary){
int64_t product = 1;
//Look through every element in the array, multiplying it
for(uint64_t location = 0;location < ary->size;++location){
product *= ary->ptr[location];
}
//Return the product
return product;
}
#endif //DYNAMIC_ARRAY_H #endif //DYNAMIC_ARRAY_H

View File

@@ -154,6 +154,30 @@ int main(){
return 1; return 1;
} }
//Test the getProd function
if(getSumDynamicInt64Array(&testAry) == 21){
printf("getSum is working correctly\n");
}
else{
printf("There is something wrong with getSum\nThe sum returned is %d\nThe sum should be %d", getSumDynamicInt64Array(&testAry), 21);
return 1;
}
//Test the getSum function
if(getProdDynamicInt64Array(&testAry) != 0){
printf("There is something wrong with getProd\nThe product returned is %d\nThe product should be%d", getProdDynamicInt64Array(&testAry), 0);
return 1;
}
//Pop off the first 0 so there will be a number in the product
removeDynamicInt64Array(&testAry, 0);
if(getProdDynamicInt64Array(&testAry) == 720){
printf("getProd is working correctly\n");
}
else{
printf("There is something wrong with getProd\nThe product returned is %d\nThe product should be%d", getProdDynamicInt64Array(&testAry), 720);
return 1;
}
//Release all of the memory allocated by the array //Release all of the memory allocated by the array
destroyDynamicInt64Array(&testAry); destroyDynamicInt64Array(&testAry);