Q-16. (middle_num) Write a program to take three numbers and find the middle number among them.

0

  1. #include <stdio.h>

  2. #include <limits.h>
  3. #include <stdarg.h>

  4. /* Function declarations */
  5. int max(int args, ...);
  6. int min(int args, ...);

  7. int main()
  8. {
  9.     /*
  10.      * Demonstrate the use of variable argument list
  11.      */
  12.     printf("Maximum of three numbers: (10, 30, 20) = %d\n", max(3, 10, 30, 20));
  13.     printf("Maximum of five numbers: (5, -45, 4, 60, 100) = %d\n", max(5, -45, 4, 60, 100));

  14.     printf("Minimum of four numbers: (-5, 0, 10, 50) = %d\n", min(4, -5, 0, 10, 50));
  15.     printf("Minimum of two numbers: (10, 20) = %d", min(2, 10, 20));

  16.     return 0;
  17. }

  18. /**
  19.  * Find maximum between two or more integer variables
  20.  * @param args Total number of integers
  21.  * @param ... List of integer variables to find maximum
  22.  * @return Maximum among all integers passed
  23.  */
  24. int max(int args, ...)
  25. {
  26.     int i, max, cur;
  27.     va_list valist;
  28.     va_start(valist, args);

  29.     max = INT_MIN;

  30.     for(i=0; i<args; i++)
  31.     {
  32.         cur = va_arg(valist, int); // Get next elements in the list
  33.         if(max < cur)
  34.             max = cur;
  35.     }

  36.     va_end(valist); // Clean memory assigned by valist

  37.     return max;
  38. }

  39. /**
  40.  * Find minimum between two or more integer variables
  41.  * @param args Total number of integers
  42.  * @param ... List of integer variables to find minimum
  43.  * @return Minimum among all integers passed
  44.  */
  45. int min(int args, ...)
  46. {
  47.     int i, min, cur;
  48.     va_list valist;
  49.     va_start(valist, args);

  50.     min = INT_MAX;

  51.     for(i=0; i<args; i++)
  52.     {
  53.         cur = va_arg(valist, int);
  54.         if(min > cur)
  55.             min = cur;
  56.     }

  57.     va_end(valist);

  58.     return min;
  59. }





Post a Comment

0Comments
Post a Comment (0)