Информатика и технология программирования


Вопросы без ответов


Для функции с переменным количеством параметров определите их последовательность (формат) и приведите пример вызова.


//------------------------------------------------------bk45-03.cpp


void F1(char *p,...)
{ char **q;
for (q = &#38p; *q !=NULL; q++) cout &#60&#60 *q; }
//--------------------------------------------------------2


void F2(int *p,...)
{ int **q, i, d;
for (i=1, q = &#38p, d=*p; q[i]!=NULL; i++)
*q[i-1] = *q[i];
*q[i-1] = d;}
//--------------------------------------------------------3


int *F3(int *p,...)
{ int **q, i, *s;
for (i=1, q = &#38p, s=p; q[i]!=NULL; i++)
if (*q[i] &#62 *s) s = q[i];
return s;
}
//--------------------------------------------------------4


int F4(int p[], int a1,...)
{ int *q, i;
for (i=0, q = &#38a1; q[i] &#62 0; i++)
p[i] = q[i];
return i;}
//--------------------------------------------------------5


union x { int *pi; long *pl; double *pd; };
void F5(int p,...)
{ union x ptr;
for (ptr.pi = &#38p; *ptr.pi != 0; )
{
switch(*ptr.pi++)
{
case 1: cout &#60&#60 *ptr.pi++; break;
case 2: cout &#60&#60 *ptr.pl++; break;
case 3: cout &#60&#60 *ptr.pd++; break;
}}}
//--------------------------------------------------------6


char **F6(char *p,...)
{ char **q,**s;
int i,n;
for (n=0, q = &#38p; q[n] !=NULL; n++);
s = new char*[n+1];
for (i=0, q = &#38p; q[i] !=NULL; i++) s[i]=q[i];
s[n]=NULL;
return s;}
//--------------------------------------------------------7


char *F7(char *p,...)
{ char **q; int i,n;
for (i=0, n=0, q = &#38p; q[i] !=NULL; i++)
if (strlen(q[i]) &#62 strlen(q[n])) n=i;
return q[n];
}
//--------------------------------------------------------8


int F8(int a1,...)
{ int *q, i, s;
for (s=0, i=0, q = &#38a1; *q &#62 0; q++)
s+= *q;
return s;}
//--------------------------------------------------------9


union xx { int *pi; long *pl; double *pd; };
double F9(int p,...)
{ union xx ptr;
double dd=0;
for (ptr.pi = &#38p; *ptr.pi != 0; )



Начало  Назад  Вперед