Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/106: Рейтинг темы: голосов - 106, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 3

Переворот массива относительно главной диагонали (транспонирование)

28.09.2011, 10:27. Показов 23551. Ответов 83
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1) Нужно написать программу которая будет выводить массив

int m[M][N]={...};

Вывести массив на экран и затем переворот массива относительно главной диагонали (транспонирование).

2) Все тоже самое как в первом только значения N и М вводятся с клавиатуры.
3) Все тоже самое как в первом только теперь создать функцию
Void displayMatrix (int**m, int N, int M);

Пожалуйста помогите, в долгу не останусь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.09.2011, 10:27
Ответы с готовыми решениями:

Отражение двумерного массива относительно главной диагонали
Помогите пожалуйста, надо отразить заданный двумерный массив относительно главной диагонали.

Транспонирование матрицы относительно побочной диагонали
Здравствуйте уважаемые знатоки. У меня есть код матрицы в С++ #include <stdafx.h> #include <iostream> #include...

Транспонирование матрицы относительно главной и побочной диагоналей
Подскажите как, транспонировать значения квадратной матрицы, относительно главной и побочной диагоналей.

83
28.09.2011, 12:58
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Ни разу TCIP аббревиатуры не встречал. Видимо это то же, что-то из недокументированного...
- TCP I нет(случайно пробилась), а то ещё в гугле не найдёшь:)Давай давай ищи и с датой здачи проекта давай определимся предлагаю завтра выложить готового клиента и сервер, пусть будет консоль куда нужно вбить порт и айпишник а затем уж печатать текст(передачу файлов даже не прошу делать)

0
28.09.2011, 13:01
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

Ага, конечно. Я прям клиент-серверное приложение ринулся писать.
Сперва вникни в суть мироздания, что arr != &arr[0][0].

3
28.09.2011, 13:06

Не по теме:

Deviaphan, я тебя вызвал, завтра выложу приложения сервера и клиента(на досуге хоть посмотришь что это:D), а как подростёшь как программер тогда зарывайся...На сим больше офтопить не желаю!

0
28.09.2011, 13:09

Не по теме:

Круто, спасибо!
Но ты, всё таки, на досуге подумай, о чём я тебе написал про arr != &arr[0][0]. Будешь приятно удивлён.

0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
28.09.2011, 13:14
-=ЮрА=-,
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    
    float** x=(float**)malloc(10*sizeof(float*));
   
    memset(x,1,10*sizeof(float*));
    printf("%p==%p\n",x,&x[0][0]); 
    
    return 0;
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.09.2011, 13:20

Не по теме:

Deviaphan, arr - область памяти, указатель на начало этой области &arr[0][0], если нужно указатели на строки пожалусто
for(int i = 0; i < m; i++)
ptr = &arr[i];
Если в ходе программы начальный адрес области не изменяется то(для данного случая)утечки памяти нет - будет лишь изменяться размер области...



Добавлено через 2 минуты
nxnx, для тебя это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    
    float* x=(float*)malloc(10*sizeof(float));
   
    memset(x,1,10*sizeof(float));
    printf("%p==%p\n",x,&x[0]); 
    
    return 0;
}


Добавлено через 35 секунд
Цитата Сообщение от nxnx Посмотреть сообщение
memset(x,1,10*sizeof(float*));
- не нужно мне указатели инициализировать, с переменными работай
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.09.2011, 13:24

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Если в ходе программы начальный адрес области не изменяется то(для данного случая)утечки памяти нет - будет лишь изменяться размер области...
Это ты так думаешь, потому что сравниваешь адреса неинициализированной памяти, которая в дебаге заполняется 0xCDCDCDCD. Но кто я такой, что бы Великий меня слушал...



Добавлено через 1 минуту

Не по теме:

ПыСя: Многомерный статический и многомерный динамический массивы в памяти представлены сильно по разному.

2
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
28.09.2011, 13:36
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- не нужно мне указатели инициализировать, с переменными работай
я не то хотел сказать. Вот код:
C
1
2
 arr = (float **)malloc(m*sizeof(float *));
                printf("pointer to arr : 0x%p\r\n",&arr[0][0]);
постами выше тебе пытаются сказать что arr и &arr[0][0] это не одно и тоже.
При выделении памяти, по адресу arr может быть любой мусор(у меня этот мусор в виде еденичек).
Попробуй кстати в своём коде:
C
1
2
3
 arr = (float **)malloc(m*sizeof(float *));
memset(arr,0,m*sizeof(float *));
                printf("pointer to arr : 0x%p\r\n",&arr[0][0]);
Особо обрати внимание на то, как будут изменятся вычисления программы.
0
28.09.2011, 13:39

Не по теме:

[b]Deviaphan[/bдавай от всего отстранимся,
1-е по топику ТС ты ни строчки не представил - это раз
2-е хочешь мне что то доказать компилируй в Release сие

Код на Си
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    
    float ** x=(float **)malloc(10*sizeof(float *));
    for(int i = 0; i < 10; i++)
    {
        x[i] = (float *)malloc(10*sizeof(float));
        memset(x[i],1,10*sizeof(float));
    }
    printf("%p==%p\n",x,&x[0][0]); 
    
    return 0;
}
- а то мякго сказать достал!
3-е завтра жду от тебя связку клиент-сервер или что нибудь достойное а иначе вообще говорить более с тобой не буду

0
28.09.2011, 13:40

Не по теме:

Цитата Сообщение от nxnx Посмотреть сообщение
Особо обрати внимание на то, как будут изменятся вычисления программы
Он на такие мелочи сейчас отвлекаться не может, сейчас нужно меня на место поставить.
Кстати, если не сложно, то пусть сервер не по "127,0,0,1" адресу будет, чтобы я получше разобрался. А то все примеры на локальном компе крутят, без авторизаций, паролей... бесполезно в общем...

1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.09.2011, 13:40
nxnx, тебе тоже сюда полезно посмотреть
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
2-е хочешь мне что то доказать компилируй в Release сие
Код на Си - а то мякго сказать достал!
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
28.09.2011, 13:40
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
nxnx, для тебя это
речь идёт о двумерном массиве, а не о одномерном.
0
28.09.2011, 13:43

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
2-е хочешь мне что то доказать компилируй в Release сие
Ну не может адрес одного массива совпадать с адресом ДРУГОГО массива. Если они у тебя совпадают, выкинь свой компилятор на помойку.

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.09.2011, 13:44

Не по теме:

Deviaphan, сервер как раз сетевой будут нужны машины удалённые связанные интернетом
на счёт сего не беспокойся

Цитата Сообщение от Deviaphan Посмотреть сообщение
"127,0,0,1"
, вобъёшь на другой машине айпишник своего сервака и порт и будешь слать месаги, сервер всё продублирует, посадишь своего друга за него пусть читает;)После это или отпади в топиках или возьми на заметку что ты не такой уж и эксперт во всё + скомпилируй мой 2-й пост, да завтра...



Добавлено через 1 минуту
Цитата Сообщение от nxnx Посмотреть сообщение
речь идёт о двумерном массиве, а не о одномерном.
- чувак я уже сказад для тебя это
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
2-е хочешь мне что то доказать компилируй в Release сие
Код на Си - а то мякго сказать достал!
, Ты сам некоректину прислал, ну так вот смотри
0
28.09.2011, 13:46

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
будут нужны машины удалённые связанные интернетом
Спасибо. Как раз хотел про сетевое программирование почитать, будет с чем играться.
Но ты всё таки подумай что (не может адрес одного массива совпадать с адресом ДРУГОГО массива)

1
28.09.2011, 13:46

Не по теме:

nxnx, это что по твоему 1д массив???:D

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    
    float ** x=(float **)malloc(10*sizeof(float *));
        for(int i = 0; i < 10; i++)
        {
                x[i] = (float *)malloc(10*sizeof(float));
                memset(x[i],1,10*sizeof(float));
        }
    printf("%p==%p\n",x,&x[0][0]); 
    
    return 0;
}

0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
28.09.2011, 13:49
C
1
2
arr = (float **)malloc(m*sizeof(float *));
printf("pointer to arr : 0x%p\r\n",&arr[0][0]);
чей адрес напечатает printf ?
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.09.2011, 13:50
Цитата Сообщение от nxnx Посмотреть сообщение
чей адрес напечатает printf ?
И, как дополнение
C
1
printf("pointer to arr : 0x%p\r\n", arr[0]);
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.09.2011, 13:54

Не по теме:

Deviaphan, я понимаю что для изменения нужен realloc просто недавно открыл для себя что если многократно алокать в цикле а указатель идёт до него(а лучше чтобы глобальным был), то адрес начала блока const и не меняется от алока к алоку, я пока сам разбираюсь с этим, всё таки думаю в рамках уровня ТС мой самый первый пост нормально подходил, а вот дальше глубокие материи пошли, ему (ТС) не нужные;)Давай уже завтра снова встретимся в этом топике?



Добавлено через 2 минуты

Не по теме:

nxnx, я тебе привёл готовый код что тебе ещё надо то???Притом адрес после работы с массивом печатаю, ты хоть компилировал???

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
float ** x=(float **)malloc(10*sizeof(float *));
* * * * for(int i = 0; i < 10; i++)
* * * * {
* * * * * * * * x[i] = (float *)malloc(10*sizeof(float));
* * * * * * * * memset(x[i],1,10*sizeof(float));
* * * * }
* * printf("%p==%p\n",x,&x[0][0]);
return 0;
}

0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.09.2011, 13:57

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
недавно открыл для себя
Если у тебя ЭТО действительно ТАК, умоляю, выкинь этот НЕКОРРЕКТНО РАБОТАЮЩИЙ компилятор.
Есть документиррованное поведение этой функции, если она работает иначе - это косяк.



Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
nxnx, я тебе привёл готовый код что тебе ещё надо то???
Вот ты не поверишь. Адреса РАЗНЫЕ, как и должно быть. Причём, у тебя код не на Си, а на С++. Нельзя внутри for переменную определять, Сишный компилятор жалуется.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2011, 13:57

Квадратная матрица, симметричная относительно главной диагонали задана верхним треугольником в виде одномерного массива
квадратная матрица симметричная относительно главной диагонали задана верхним треугольником в виде одномерного массива . Восстановить...

Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива.Восстановить исходную матрицу
Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановить...

Проверка на симметричность относительно главной диагонали
Дан массив целых чисел размера n x n, элементами которого являются 0 и 1. Проверить, является ли массив симметричным относительно главной...

Дана квадратная матрица. Произвести транспонирование (переворот) матрицы относительно ее главной диагонали
Дана квадратная матрица. Произвести транспонирование (переворот) матрицы относительно ее главной диагонали Sub Макрос1() Dim a As...

Произвести переворот матрицы относительно ее побочной диагонали
Дана квадратная матрица. Произвести переворот матрицы относительно ее побочной диагонали ....кто знает как это сделать ...хэлп.... в...


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

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru