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

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

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

C++ Как связаны эти две строчки?
C++ Как правильно засунуть две строчки в код программы?(
Подправить две строчки в задаче C++
Используя одну переменную цикла укажите возможные способы объявления заголовка счетного цикла. C++
C++ Как сравниеть две строчки std string не учитывая геристр букв?
C++ В две строчки записать две цифры, а потом по закрытии программы и повторном открытии прочитать каждое число в отдельную переменную?
Объясните две строчки кода C++
Нужно записать две строчки через указатель, не используя адрес C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
 Аватар для Gravity
556 / 550 / 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
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 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
Yandex
Объявления
18.12.2009, 20:46     Как переставить две строчки матрицы не используя цикла?
Ответ Создать тему
Опции темы

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