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

Макрос для матрицы - C++

Восстановить пароль Регистрация
 
Shab13
1 / 1 / 0
Регистрация: 10.03.2011
Сообщений: 39
17.10.2011, 13:00     Макрос для матрицы #1
Ребят помогите сделать макрос в Си который выводит матрицу вида:
1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
3 4 5 1 2
2 3 4 5 1

Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2011, 13:00     Макрос для матрицы
Посмотрите здесь:

C++ какими средствами пользоваться для того, чтобы умножать матрицы, складывать матрицы?
C++ Для заданной матрицы размера NхN найти такие k и n, что сумма элементов k- столбца матрицы совпадает с суммой элементов n- го строки
C++ Для матрицы размером m x n вычислить сумму элементов матрицы
Если макрос на VBA переписать на С++, то макрос станет работать быстрее? C++
Вспомогательный макрос для вывода строки и значения C++
Составить функцию для построения вектора из элементов матрицы по заданному правилу и отсортировать элементы матрицы C++
макрос assert() для считывания даных из файла из указаного диапазона C++
Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод,вывод,сумму в виде отдельных процедур C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
17.10.2011, 16:11     Макрос для матрицы #2
Уверены, что нужен именно макрос?
Макросы - это препроцессорные "функции" , т.е. лексемы, созданные с помощью директивы #define, которые принимают параметры подобно функциям. После директивы #define указывается имя макроса, за которым в скобках (без пробелов) параметры, отделенные запятыми и определение макроса, отделенное пробелом.
Под катом накидал код. Не очень красивый. Даже обидно
Собственно, сам код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
#define ROWS 5
#define COLS 5
 
int main(void)
{
    int  i, j, num = 1;
    printf("%d\t", num);
    for(i = 0; i < ROWS; ++i)
    {
        for(j = 0; j < COLS - 1; ++j)
        {
            if(num == COLS)
                num = 0;
            printf("%d\t", ++num);
        }
        printf("\n");
        if(i <= (ROWS - 2))
            printf("%d\t", num);
    }
    return 0;
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.10.2011, 16:20     Макрос для матрицы #3
Так как-то
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
#define PRINT_MATRIX(mat, n, m) \
    for ( int i = 0; i < n; ++i) \
    {   \
        for (int j = 0; j < m ; ++j) \
            printf("%d ", mat[i][j]); \
        puts(""); \
    }
 
 
int main()
{
    int matrix[5][5] =   {
        { 1, 2, 3, 4, 5 },
        { 5, 1, 2, 3, 4 },
        { 4, 5, 1, 2, 3 },
        { 3, 4, 5, 1, 2 },
        { 2, 3, 4, 5, 1 } };
    
    PRINT_MATRIX( matrix, 5, 5 )
}
Yandex
Объявления
17.10.2011, 16:20     Макрос для матрицы
Ответ Создать тему
Опции темы

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