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

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

28.09.2011, 10:27. Показов 23015. Ответов 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
Закрытая тема Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru