С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pelele
7 / 2 / 1
Регистрация: 08.10.2009
Сообщений: 45
#1

Разъясните как чайничку :) - C++

14.12.2009, 22:36. Просмотров 553. Ответов 4
Метки нет (Все метки)

Ребята, кому не трудно, объясните недолекому человеку, как и с чем едят "механизм передачи неопределенного числа параметров". Вот хоть убей, не доходит как это реализовать(именно как правильно синтаксис писать) в данной задачи:

Реализовать функцию, формирующую из слов переданных в качестве параметров
предложение, упорядочив слова по убыванию их длины. Функция возвращает строку,
содержащую полученное значение.При реализации функции использовать механизм передачи неопределенного числа параметров. В главной функции main реализовать демонстрацию работы разработанной функции с различным числом параметров.

Я в растерянности, подскажите, пожалуйста, на примере, без разницы каком, а то в книгах как-то коротко и без примеров

Спасибо заранее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2009, 22:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разъясните как чайничку :) (C++):

разъясните,пожалуйста, как это сделать? - C++
Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не...

Разъясните подробно, как работают Try-catch - C++
Добрый вечер, форумчане! Такая просьба - разъясните нубасу(то бишь мне) подробно как работает try catch throw или киньте ссылки, где это...

Разъясните эту строку как мне это привязать к функции - C++
double (*func4 (double, double)); - как это привязать к функции, как я понимаю это масив указателей на функцию, но она почему то не...

Списки разъясните - C++
Совсем недавно начал изучать списки и всё никак не могу понять, как их реализовывать правильно в си. Собственно код написал ниже, но вот ...

Разъясните код - C++
Здравствуйте! Расскажите, пожалуйста, что обозначает это, почему вообще так пишется: #define STATE(name) DWORD WINAPI name(DWORD...

Разъясните задание - C++
Есть файл(.txt) с символами,нужно следующее сделать Записать в новый файл символы из исходного, преобразованные следующим образом:...

4
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
14.12.2009, 22:41 #2
вот:

void zzz(...) {}

можешь передавать туда шо хошь.

например так:

zzz(20);

или так:

zzz(100, -376.12);

или даже так:

zzz("Ой, мама...", std:: pair<int, int>(), std::cout, &zzz, new std::string());
1
Aye Aye
369 / 283 / 36
Регистрация: 17.12.2009
Сообщений: 567
20.12.2009, 00:39 #3
вот те мальенький пример по реализации функции неопределенного оличества аргументов, если не справишься будем думать
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
#include<iostream>
#include<conio.h>
#include<cstdarg>//Г§Г*ãîëîâî÷Г*ûé ГґГ*éë Г± ГґГіГ*êöèÿìè äîñòóïГ* ГЄ Г±ГЇГЁГ±ГЄГі Г*ГҐ ôîðìГ*ëüГ*ûõ Г*ðãóìåГ*òîâ.
using namespace std;
 
void printint(int i ...) // ïîñëå ôîðГ*ëüГ*îãî Г*ðóìåГ*ГІГ* int i ñëåäóþò Г*ГҐ ôîðìГ*ëüГ*ûå int.
{
     va_list L; //ГЁГ*èöèГ*ëèçГ*öèÿ Г±ГЇГЁГ±ГЄГ* Г*åôîðìГ*ëüГ*ûõ Г*ðãóìåГ*òîâ.
     va_start(L,i); //  --//--, ïîñëå ГЄГ*êîãî Г*ðãóìåГ*ГІГ* Г§Г*ïîëГ*ГїГІГј ñïèñîê, ïîñëå ïîñëåäГ*ГҐГЈГ® ôîðìГ*ëüГ*îãî i.
     cout << "entered numbers: ";
     for (;;)
     {
         int *ptr=va_arg(L,int*); // çäåñü ïîî÷åðåäè èìååì äîñòïóï ГЄ Г*ГҐГґ.Г*ðãóìåГ*ГІГ*Г¬. va_arg(_,int*<-ГЅГІГ® ГЁ ГҐГ±ГІГј ГЁГµ ГІГЁГЇ)
         if (ptr==0)break; // ГЄГ®Г*ГҐГ¶ ââîäГ* Г*åôîðìГ*ëüГ*ûõ Г*ðãóìåГ*òîâ.
         //îáðГ*áîòêГ* î÷åðåäГ*îãî âõîäГ*îãî Г§Г*Г*Г·ГҐГ*ГЁГї
         cout << " " << ptr << " ";
         //ГіГЄГ*Г§Г*òåëü Г*Г* ГІГҐГЄГіГ№ГЁГ© Г*ðãóìГ*ГІ ptr âûõîäèò ГЁГ§ ñâîåé îáëГ*Г±ГІГЁ âèäèìîñòè ГЁ ГЁГ±Г·ГҐГ§Г*ГҐГІ.
     }
     va_end(L);     // Г§Г*âåðøåГ*ГЁГҐ, <- ГІГ*ГЄГЁГҐ êîìГ*Г*äû ГўГ±Вё ÌÀÊÐÎÑÛ.
     
     cout << endl;
}
 
void printIS(int i,double x ...)
{
     va_list L;
     va_start(L,x);//ïîñëå ГЄГ*êîãî Г*ðãóìåГ*ГІГ* Г§Г*ïîëГ*ГїГІГј ñïèñîê, ïîñëå ïîñëåäГ*ГҐГЈГ® ôîðìГ*ëüГ*îãî x.
     cout << "i= " << i << " x= " << x << " else: ";
     for(int n=1;;n++)
     {
            char *p=va_arg(L,char*);// Г¬Г*êðîñ äëÿ ïîñëåäîâГ*òåëüГ*îãî èçâëå÷åГ*ГЁГї Г*åèìåГ*îâГ*Г*Г*ûõ Г*ðãóìåГ*òîâ.
            if (p==0)break; // âûõîä ГЁГ§ öèêëГ* äîñòóïГ*, åñëè.
            cout << " " << n << "-string is " << p;
     }
     cout << '\n';
     va_end(L); // va_end ГіГ±ГІГ°Г*Г*ГїГҐГІ Г*åæåëГ*òåëüГ*ûå ìîäèôèêГ*öèè Г±ГІГҐГЄГ* Г¬Г*êðîñîì va_start.
}
 
int main()
{
     printint(1,5,2,7,2,0);// Г*îëü èñïîëüçóåòñÿ Гў ГЄГ*Г·ГҐГ±ГІГўГҐ "òåðìèГ*Г*ëüГ*îãî" Г*ðãóìåГ*ГІГ*.
     printIS(394,523.4234,"Unix","Intel","IBM","MAC",0);
     getch();
}
вместо того что бы использовать ноль - как терминальный аргумент, прото передавай первым аргументом число слов, и считывай столько же строк из спиака нефомальных аргументов.
реализуй функцию сортировки, для выходной строки.
1
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
20.12.2009, 03:30 #4
Цитата Сообщение от pelele
Реализовать функцию, формирующую из слов переданных в качестве параметров
предложение, упорядочив слова по убыванию их длины. Функция возвращает строку,
содержащую полученное значение.
почти то же самое
Передача неопределённого числа параметров в функцию
1
pelele
7 / 2 / 1
Регистрация: 08.10.2009
Сообщений: 45
27.12.2009, 21:50  [ТС] #5
Ребят, спасибо большое)) А пример задачи с разъяснениями вообще шик!
0
27.12.2009, 21:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2009, 21:50
Привет! Вот еще темы с ответами:

Разъясните пожалуйста - C++
int sd(int n, int d = 1) { if(n == 0) { return 0; } else { return d &lt;= n ? (n % d == 0...

Разъясните задание - C++
Сформировать динамический массив, состоящий из динамических строк. (Это я понял как сделать). Но нужно еще &quot;Добавить строку с заданным...

Матрицы (разъясните код) - C++
пожалуйста разъясните код: void swap(double &amp;a, double &amp;b) { double temp = a; a = b; b = temp; } void M(double **A, double...

Функция get() разъясните ситуацию - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; int main() { setlocale(LC_CTYPE, &quot;russian&quot;); char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.