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

Макроподстановки - C++

Восстановить пароль Регистрация
 
VovaMazur
-12 / 33 / 8
Регистрация: 10.03.2011
Сообщений: 133
08.11.2011, 00:17     Макроподстановки #1
Добрый вечер. Помогите разобраться с заданием либо решить на "чистом Си".
Нужно написать макрос, который будет обеспечивать последовательное введение (из стандартного файлового потока) и добавление действительных чисел. Цикл чтения прерывается при вводе нулевого значения. В основной программе нужно получить и вывести сумму введенных чисел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2011, 00:17     Макроподстановки
Посмотрите здесь:

C# Создание и использование макроподстановки
макроподстановки=))) C++
Макроподстановки C++
C++ Макроподстановки в С++
C# Макроподстановки
D Макроподстановки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VovaMazur
-12 / 33 / 8
Регистрация: 10.03.2011
Сообщений: 133
05.12.2011, 16:26  [ТС]     Макроподстановки #2
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
#include <stdio.h>
#include <stdlib.h>
//параметр макроса - 1-е число, в нього будемо записувати результат
#define macro(res)                      \
{                                       \
    double second;                      \
    int n = 1;                          \
    do                                  \
    {                                   \
        printf("%d: ", ++n);            \
        scanf("%lf", &second);          \
        res += second;                  \
    } while(second != 0.0);             \
}
 
int main(void)
{
    double result;
    printf("1: ");                      
    scanf("%lf", &result);
    macro(result);
    printf("Result = %f\n", result);
    system("pause");
    return 0;
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
05.12.2011, 17:44     Макроподстановки #3
C
1
2
3
4
5
6
7
8
9
10
11
#define INPUT_AND_CALC_SUM \
double sum = 0; \
double value = 0; \
while (scanf("%lf", &value) && value) \
sum += value; \
printf("%lf\n", sum);
 
int main()
{
    INPUT_AND_CALC_SUM
}
Yandex
Объявления
05.12.2011, 17:44     Макроподстановки
Ответ Создать тему
Опции темы

Текущее время: 01:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru