#include <stdio.h>
#include <stdarg.h>
double add_values(char *str, ...)
{
va_list marker;/*va:variable-argument*/
double result = 0.0;
va_start(marker,str);
while(*str)
{
if(*str == '%')
{
switch(*(++str))
{
case 'd':
result+=va_arg(marker,int);
break;
case 'f':
result+=va_arg(marker,double);
break;
}
}
str++;
}
va_end(marker);
return(result);
}
int main(int argc,char *argv[])
{
double result=add_values("%f%d",3.3,4);
printf("result is %0.3f/n",result);
return 0;
}