Variadic functions in C

  • + 1 comment
    int  sum (int count,...) {
       int som=0;
       va_list args;
       
       va_start(args,count);
       for(int i=0;i<count;i++)
       {
            som+= va_arg(args,int);
       }
    
       va_end(args);
       return som;
    }
    
    int min(int count,...) {
       int t[count],k=0,c=0;
       va_list args;
       
       va_start(args,count);
       for(int i=0;i<count;i++)
       {
           t[i]=va_arg(args,int);
       }
       
       for(int i=0;i<count;i++)
       {
           for(int j=0;j<count;j++)
           {
               if(t[i]<t[j])k++;
           }
           if(k>=count-1)
           {
               return c=t[i];
           }
           k=0;
       }
       va_end(args);
       return c;
    }
    
    
    int max(int count,...) {
       int t[count],k=0,c=0;
       va_list args;
       
       va_start(args,count);
       for(int i=0;i<count;i++)
       {
           t[i]=va_arg(args,int);
       }
       
       for(int i=0;i<count;i++)
       {
           for(int j=0;j<count;j++)
           {
               if(t[i]>t[j])k++;
           }
           if(k>=count-1)
           {
               return c=t[i];
           }
           k=0;
       }
       va_end(args);
       return c;
    }