mirror of
https://bitbucket.org/Mattrixwv/myhelpers.git
synced 2025-12-07 02:53:59 -05:00
Added getSum and getProd functions
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user