Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для anna93
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 9

Как запрограммировать функцию со сменным количеством параметров

15.01.2013, 06:26. Показов 1904. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто силен в теории, ответьте, пожалуйста:

Как запрограммировать функцию со сменным количеством параметров?

Как правильно работать с данными внутри функции?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2013, 06:26
Ответы с готовыми решениями:

Функции со сменным количеством параметров
Мне нужно написать функцию, которая 3 раза может принять разное количество параметров и вывести минимальных из них. Например ввести 5,...

Написать функцию со сменным числом параметров
нужно написать функцию со сменным числом параметров, которая находит углы n-угольника по заданным сторонам. заранее благодарю!

Передача строк в функцию со сменным количеством параметров
Нужно передать строки в функцию f со сменным количеством параметров, передача должна остановиться на указателе NULL. В функции нудно...

11
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
15.01.2013, 07:48
1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <initializer_list>
#include <iostream>
#include <iterator>
 
template < typename T >
void func(const std::initializer_list<T>& lst)
{
    std::copy(lst.begin(), lst.end(), std::ostream_iterator<int>(std::cout, " "));
}
 
int main()
{
    func({ 1, 2, 3, 4, 5 });
}
2. Хз. Вопрос не понятный
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
15.01.2013, 09:59
Пaтрик, думаю имелось ввиду это
C++
1
void func (int count, ...) {}
1
17 / 8 / 2
Регистрация: 06.01.2013
Сообщений: 163
15.01.2013, 10:01
1. Как запрограммировать функцию со сменным количеством параметров?
можно передавать один параметр массив. В массиве может быть уже несколько параметров (элементов массива).
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
15.01.2013, 10:04
Kastaneda, просто я в вашем варианте не особо секу, поэтому предложил вариант с initializer_list как один из возможных.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
15.01.2013, 10:32
Цитата Сообщение от Пaтрик Посмотреть сообщение
Kastaneda, просто я в вашем варианте не особо секу
Это как раз класический пример функции с переменным числом аргументов, а твой (мы же на "Ты") вариант - это уже нововведение языка, и препод это скорее всего даже не поймет.

В С99 и gnu extension есть еще макросы с переменным числом аргументов
C++
1
2
3
4
5
6
7
8
9
#include<cstdio>
 
#define PRINT(...) printf(__VA_ARGS__);
 
int main()
{
   PRINT("Hello\n")
   PRINT("%s%d", "Var = ", 5)
}
http://liveworkspace.org/code/3SgX5D

Добавлено через 4 минуты
Цитата Сообщение от Kastaneda Посмотреть сообщение
В С99 и gnu extension
Хм, на википедии написано, что они еще в С++11 поддерживаются.
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
15.01.2013, 10:34
Kastaneda, В стандарте ни слова про __VA_ARGS__. Так что...
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
15.01.2013, 10:38
Цитата Сообщение от ForEveR Посмотреть сообщение
Kastaneda, В стандарте ни слова про __VA_ARGS__. Так что...
Ну на гнушном сайте точно написано http://gcc.gnu.org/onlinedocs/... acros.html
А про стандарт сам только что на википедии увидел, может там ошибка, или может стоит поискать в стандарте "Variadic Macros", возможно там просто не __VA_ARGS__, а что-нибудь другое.
0
15.01.2013, 10:40

Не по теме:

ForEveR, Kastaneda и началась битва титанов в 2013 на cyberforum :)

0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
15.01.2013, 10:43
Kastaneda, Я все-таки не прав видимо. Прошу прощения.

C99 features
To preserve a high degree of compatibility, a few minor changes to the language were introduced in collaboration with the C standards committee:

long long.
Extended integral types (i.e. rules for optional longer int types).
UCN changes [N2170==07-0030] ``lift the prohibitions on control and basic source universal character names within character and string literals.''
concatenation of narrow/wide strings.
Not VLAs (Variable Length Arrays; thank heaven for small mercies).

Some extensions of the preprocessing rules were added:

__func__ a macro that expands to the name of the lexically current function
__STDC_HOSTED__
_Pragma: _Pragma( X ) expands to #pragma X
vararg macros (overloading of macros with different number of arguments)


C++
1
        #define report(test, ...) ((test)?puts(#test):printf(_ _VA_ARGS_ _))
empty macro arguments

A lot of standard library facilities were inherited from C99 (essentially all changes to the C99 library from its C89 predecessor):
http://www.stroustrup.com/C++11FAQ.html#C99

Ну и 16.3/5

The identifier _ _ VA_ARGS _ _ shall occur only in the replacement-list of a function-like macro that uses the
ellipsis notation in the parameters.
1
Почетный модератор
12274 / 5340 / 268
Регистрация: 05.04.2011
Сообщений: 14,086
Записей в блоге: 2
15.01.2013, 10:46
anna93, одна тема - один вопрос. На будущее.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
15.01.2013, 11:06
Ну а это из 2003 стандарта:
When there is no parameter for a given argument, the argument is passed in such a way that the receiving
function can obtain the value of the argument by invoking va_arg (18.7).
и собственно, 18.7
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2013, 11:06
Помогаю со студенческими работами здесь

Функция со сменным количеством параметров для структуры
Здравствуйте! Есть задание написать функцию со сменным количеством параметром. Этими параметрами есть несколько комплексных чисел. Нужно...

Написать функцию со сменным числом параметров для перевода чисел из двичной системы счисления в троичную
используя функции, решить задачи. Массив должен передаваться в функцию как параметр. 1) Заданный двумерный массив N x M. Найти в нём...

Разработать функцию с переменным количеством параметров
Добрый день, уважаемые программисты! Прошу помочь в поиске ошибки задание: Разработать функцию с переменным количеством параметров. ...

Разработать функцию с переменным количеством параметров
Помогите пожалуйста: Разработать функцию с переменным числом параметров ({x}_{1}, {x}_{2}, ... , {x}_{n}), которая вычисляет значение...

Разработать функцию с переменным количеством параметров
Функция должна вернуть наименьшее из введенных значений. #include &lt;iostream&gt; #include &lt;cstdlib&gt; // для system #include...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru