Форум программистов, компьютерный форум CyberForum.ru

программа и функция с переменным числом параметров - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Повторное применение оператора delete http://www.cyberforum.ru/cpp-beginners/thread672956.html
Это нормально так делать? в одном учебнике нашел: Вы можете попасть в ситуацию, когда delete вызывается неоднократно для одного и того же объекта ............ Чтобы избежать повторного применения delete к указателю, возмите за правило обнулять указатель после уничтожения объекта: Monster* Borg=new Monster; delete Borg; Borg=0; //Теперь повторный вызов delete безопасен
C++ Преобразование изображения в текст в общем необходимо написать программу для преобразования картинки в текст, как это сделать и вообще с чего начать? http://www.cyberforum.ru/cpp-beginners/thread672951.html
C++ Не ловится исключение
Не ловится исключение, если нет интернет-соединения... Или при этом вовсе не исключение возникает?.. try { AnsiString query = "...."; Form1->NMHTTP1->Get(query); AnsiString answer = Form1->NMHTTP1->Body.LowerCase(); if (answer.SubString(1,14) == "\r\n<br>ошибка #") ...
C++ алгоритм простого обмена, криптография
помогите пожалуйста, мне нужна программа на C++, алгоритм простого обмена, криптография никак не получается(( Добавлено через 20 минут у нас есть буквы английского алфавита, нужно зашифровать текст. Ключ-те же буквы в случайном порядке. Нужно обменять местами соответсвующие буквы алфавита и ключа
C++ Найти сумму, используя программный код http://www.cyberforum.ru/cpp-beginners/thread672924.html
Ребят, помогите мне преобразовать в код под си++ и найти сумму
C++ Перенагрузка функции Надо написать с помощю перегагрузки такую задачу: Нахождение максимума двух, трех, четырех целых чисел. во что я написал #include <stdio.h> #include <conio.h> int max(int,int); int max(int,int,int); int max(int,int,int,int); main(){ int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); max(a,b); подробнее

Показать сообщение отдельно
tofvis
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 6
26.01.2013, 04:45     программа и функция с переменным числом параметров
Скорей всего вопрос не актуален но я сам учусь и вот скомпелировал вашу програму.
в гугле советую на эту тему искать на английском c++ function parameter ellipsis

Вот собственно код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <stdarg.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
 
void   tumbl (char *s, int k,...);
int (*fn ) (int, ...); 
int f1     (int , ...); 
int f2    (int , ...); 
int f3    (int , ...); 
//int i, x1, x2, x3, x4, x5, rez; 
 
int main( )
{
    
char buf[70] = {"\t ** suma proizvideniya max elementov ** \n"};
while(1)
{
 
tumbl (buf ,3, 's', 'u' , 'm') ;
// если снять коментарии все компилируется
//tumbl("\t ** suma max elementov** \n" , 2, 'm', 's' ) ;
//tumbl("\t** suma proizvideniya**\n", 2, 's' , 'u');
//tumbl ("\t**suma**\n",1, 's');
//tumbl ("\t** proizvideniya**\n", 1, 'u' ) ;
//tumbl ("\t**nayti max element **\n", 1, 'm') ;
}
}
 
void tumbl (char *s, int k, ...) 
{
 
 
int i, x1, x2, x3, x4, x5, rez; 
va_list p;     
char r; 
do       
{
va_start (p, k);
cout << s << endl << " Vvedite 5 chisel"; 
cout << endl;
cin >> x1 >> x2 >> x3 >> x4 >> x5;
cout << "Vedi s = nahodit Sumu, n = nahodit proizvideniye, m = nahodit max element ";
cout << endl;
for(i=0; i<k; i++)
{
 r = _getch();
switch (r = va_arg(p, int))
{
case 115: fn = f1; 
rez = fn(5, x1, x2, x3, x4, x5); 
cout << "suma = " << rez << endl; 
break;
case 110: fn = f2; 
rez = fn(5, x1, x2, x3, x4, x5); 
 cout << "proizvideniye  = "<<rez << endl; 
break;
case 109: fn = f3; 
rez = fn(5, x1, x2, x3, x4, x5); 
 cout << "max element = " << rez << endl;
break;  
 
}
 va_end(p) ;
cout <<  ("Povtorit? (y/n)"); 
r = getch();
}
}while (r == 'y');  
        
}
 
 
 
int f1(int n, ...)        /*nahodit Sumu*/
{ 
int i, k, mx;  
va_list p; 
 mx = 0;    
va_start(p, n); 
for (i=0; i<n; i++) mx += va_arg(p, int); 
va_end(p); 
return mx;  
} 
 
int f2(int n, ...)        /*nahodit proizvideniye */
{ 
int i, k, mx;  
va_list p;   
mx=1; 
va_start(p, n); 
for (i= 0; i<n; i++)
mx*=va_arg(p, int); 
va_end(p); 
return mx;
}
 
int f3(int n, ...)     /*nahodit max element */
{ int i, k, mx; va_list p;  mx=-32768; 
va_start(p, n) ; 
for (i = 0; i<n; i++) 
if((k=va_arg(p, int))>mx)      mx=k;   
va_end(p);    
return mx;  
}
 
Текущее время: 06:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru