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

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

Войти
Регистрация
Восстановить пароль
 
Kristinka
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 8
#1

Как переставить две строчки матрицы не используя цикла? - C++

18.12.2009, 20:22. Просмотров 362. Ответов 2
Метки нет (Все метки)

Как переставить две строчки матрицы не используя цикла? Помогите пожалуйста с задачей.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2009, 20:22     Как переставить две строчки матрицы не используя цикла?
Посмотрите здесь:

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

Как связаны эти две строчки? - C++
Только начал изучать c++ и для закрепления основ решил написать программку для решения квадратных уравненй. И возникли небольшие проблемы...

Как правильно засунуть две строчки в код программы?( - C++
Вставить надо это: int ok; do { /********************************* *** Часть программы, *** которую нужно...

Как сравниеть две строчки std string не учитывая геристр букв? - C++
Как сравнить две строчки std string не учитывая геристр букв? :wall:

В две строчки записать две цифры, а потом по закрытии программы и повторном открытии прочитать каждое число в отдельную переменную? - C++
Как в с++ в две строчки записать две цифры, а потом по закрытии программы и повторном открытии прочитать каждое число в отдельную...

Объясните две строчки кода - C++
что значит вот это: имею вввиду каждые функциии: не могу найти if ( n.peek() == ifstream::traits_type::eof() ) ofstream n(...

Подправить две строчки в задаче - C++
#include <stdio.h> #include <clocale> #include <conio.h> #include <cstdlib> #include <iostream> using namespace std; int...

Компилятор пропускает две строчки - C++
Здравствуйте! Вкратце о задании: нужно создать структуру, с помощью которой будет вводится информация о товаре. Два элемента структуры...

Как переставить строки матрицы в обратном порядке? - C++
не могу ничего сделать дальше этого не смог продвинуться #include <iostream.h> #include <conio.h> const int N = 2; const int M =...

Используя указатель, как параметр цикла, распечатать массив с конца, пропуская элементы, кратные 3 - C++
Создать целочисленный массив из 10 элементов. Используя указатель в качестве параметра цикла: распечатать массив с конца, пропуская...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
18.12.2009, 20:42     Как переставить две строчки матрицы не используя цикла? #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
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
#define M 3
#define N 4
 
int main(void)
{
    int i, j, a[M][N], temp[N];
 
    srand(time(NULL));
    for(i = 0; i < M; i++)
        for(j = 0; j < N; j++) {
            a[i][j] = rand() % 20;
            printf("%3d%s", a[i][j],
                    j < N - 1 ? " " : "\n");
        }
 
    /* перестановка 1й и последней строк */
    memcpy(temp, a[0], sizeof(a[0]));
    memcpy(a[0], a[M-1], sizeof(a[M-1]));
    memcpy(a[M-1], temp, sizeof(temp));
 
    printf("\n");
    for(i = 0; i < M; i++)
        for(j = 0; j < N; j++)
            printf("%3d%s", a[i][j],
                    j < N - 1 ? " " : "\n");
    return 0;
}
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
18.12.2009, 20:46     Как переставить две строчки матрицы не используя цикла? #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
45
46
47
48
49
#include <stdio.h>
 
 
int main(){
 
    int i, j;
    int **arr = (int**)malloc(4 * sizeof(int));
    for (i = 0; i < 4; ++i)
        arr[i] = (int*)malloc(4 * sizeof(int));
 
    for (i = 0; i < 4; ++i){
        printf("[ ");
        for (j = 0; j < 4; ++j){
            arr[i][j] = i + j;
            printf("%d ", arr[i][j]);
        }
        printf("]\n");
    }
    /* Полученая матрица..
    [ 0 1 2 3 ]
    [ 1 2 3 4 ]
    [ 2 3 4 5 ]
    [ 3 4 5 6 ]
 
    меняем первую и последнюю строки..
    чтобы было так
     [ 3 4 5 6 ]
     [ 1 2 3 4 ]
     [ 2 3 4 5 ]
     [ 0 1 2 3 ]
    */
 
    int *buff;
    buff   = arr[0];
    arr[0] = arr[3];
    arr[3] = buff;
 
    printf("\nResult:\n");
    for (i = 0; i < 4; ++i){
        printf("[ ");
        for (j = 0; j < 4; ++j){
            printf("%d ", arr[i][j]);
        }
        printf("]\n");
    }
 
           //нужно удалить массив.. 
    return 0;
}
http://codepad.org/NTbHhigY
Ответ Создать тему
Опции темы

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