Hello coders, today we will be solving Variadic Functions in C Hacker Rank Solution.
Task
Variadic functions are functions which take a variable number of arguments. In C programming, a variadic function will contribute to the flexibility of the program that you are developing.
The declaration of a variadic function starts with the declaration of at least one named variable, and uses an ellipsis as the last parameter, e.g.
int printf(const char* format, ...);
In this problem, you will implement three variadic functions named sum(), min() and max() to calculate sums, minima, maxima of a variable number of arguments. The first argument passed to the variadic function is the count of the number of arguments, which is followed by the arguments themselves.
Input Format
- The first line of the input consists of an integer number_of_test_cases.
- Each test case tests the logic of your code by sending a test implementation of 3, 5 and 10 elements respectively.
- You can test your code against sample/custom input.
- The error log prints the parameters which are passed to the test implementation. It also prints the sum, minimum element and maximum element corresponding to your code.
Constraints
1 ≤ number_of_test_cases ≤ 50
1 ≤ element ≤ 1000000
Output Format
"Correct Answer" is printed corresponding to each correct execution of a test implementation."Wrong Answer" is printed otherwise.
Sample Input 0
1
Sample Output 0
Correct Answer Correct Answer Correct Answer
Solution - Variadic Functions in C - Hacker Rank Solution
#include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #define MIN_ELEMENT 1 #define MAX_ELEMENT 1000000 int sum (int count,...) { int sum=0; va_list values; va_start(values,count); for(int i=0;i<count;i++){ sum+=va_arg(values,int); } va_end(values); return sum; } int min(int count,...) { int min=MAX_ELEMENT,test; va_list values; va_start(values,count); for(int i=0;i<count;i++){ test=va_arg(values,int); if(min>test){ min=test; } } va_end(values); return min; } int max(int count,...) { int max=MIN_ELEMENT,test; va_list values; va_start(values,count); for(int i=0;i<count;i++){ test=va_arg(values,int); if(max<test){ max=test; } } va_end(values); return max; } int test_implementations_by_sending_three_elements() {
Disclaimer: The above Problem (Variadic Functions in C) is generated by Hacker Rank but the Solution is provided by Sloth Coders.
Happy Coding !!
A Sloth Who loves to Code.
Also Read: