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

Макросы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Индивидуальное задание С++ http://www.cyberforum.ru/cpp-beginners/thread306844.html
Ребята, выручайте... Срочно надо сдавать,а как делать не знаю... Вот задание Составить описание класса для объектов-векторов, задаваемых координатами концов в трехмерном пространстве. Обеспечить операции сложения векторов с получением нового вектора...
C++ написать программу на с++ информационное поле элемента очереди - строка. помогите пожалуйста.... написать программу на с++ информационное поле элемента очереди - строка.Посчитать колличество слов очереди, которые начинаются и заканчиваются одной и той же литерой http://www.cyberforum.ru/cpp-beginners/thread306841.html
Графика C++ C++
Вывести на экран цветную трапецию. Должно работать в Borland 3.1
в каждой строке матрицы поменять местами последний отрицательный и последний нулевой элементы C++
Люди помогите что делаю не правильно ? :) Добавлено через 28 минут нашел косяк всем спасибо :) #include "stdafx.h" #include <iostream> using namespace std; int main() { int n,m,i,j;
C++ Работа с файлами С++ http://www.cyberforum.ru/cpp-beginners/thread306830.html
Перезаписать текстовый файл, выбросив из него все гласные буквы, новый файл не создавать. пожалуйста помогите.
C++ Запись случайных чисел в массив Подскажите, пожалуйста, в чем проблема. #include <random> ... std::tr1::mt19937 eng; std::tr1::poisson_distribution<double>poisson(5.0); std::cout << poisson(eng) << std::endl; - это для генерирования случайной величины, распределенной по закону пуассона. Есть следующий код: #include "stdafx.h" #include <iostream> #include <random> подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.05.2011, 19:31     Макросы
barlog, у макросов Си есть своя область применения - для подстановок, выполняемых во время компиляции программы. И для использования специальных препроцессорных операторов/

Не по теме:

Кстати, директива #include предназначена для подключения только исходных файлов (ну или изображений *.xpm)


А задание само очень странное
Ну вот простая программа - генерация и вывод случайной квадратной матрицы заданного порядка.
"До":
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    int** matrix;
 
    size_t i, j;
 
    size_t size;
        
    srand((size_t) time(NULL));
 
    fputs("Input size: ", stdout);
    scanf("%u", &size);
    
    matrix = malloc(size * sizeof(int*));
 
    if(matrix == NULL)
    puts("Can't allocate memory"), exit(1);
    
    for(i = 0; i < size; ++i)
    {
    matrix[i] = malloc(size * sizeof(int));
 
    if(matrix[i] == NULL)
        puts("Can't allocate memory"), exit(1);
 
    for(j = 0; j < size; ++j)
        matrix[i][j] = rand() % 51 - 25;
    }
 
    for(i = 0; i < size; ++i)
    for(j = 0; j < size; ++j)
        printf("matrix[%u][%u] = %d\n", i, j, matrix[i][j]);
 
    for(i = 0; i < size; ++i)
    free(matrix[i]);
    free(matrix);
    
    exit(0);
}
"После":
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define DIE_IF(EXPR, REASON) \
    if(EXPR) puts(REASON), exit(1)
 
#define PRINT_MATRIX(M, I, J, FORMAT) \
    printf(#M "[%u][%u] = " #FORMAT "\n", I, J, (M)[I][J])
 
#define L_T -25
#define R_T  25
 
int main()
{
    int** matrix;
 
    size_t i, j;
 
    size_t size;
        
    srand((size_t) time(NULL));
 
    fputs("Input size: ", stdout);
    scanf("%u", &size);
    
    matrix = malloc(size * sizeof(int*));
 
    DIE_IF(matrix == NULL, "Can't allocate memory");
        
    for(i = 0; i < size; ++i)
    {
    matrix[i] = malloc(size * sizeof(int));
 
    DIE_IF(matrix[i] == NULL, "Can't allocate memory");
 
    for(j = 0; j < size; ++j)
        matrix[i][j] = rand() % (R_T - L_T + 1) + L_T;
    }
 
    for(i = 0; i < size; ++i)
    for(j = 0; j < size; ++j)
        PRINT_MATRIX(matrix, i, j, %d);
    
    for(i = 0; i < size; ++i)
    free(matrix[i]);
    free(matrix);
    
    exit(0);
}
 
Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru