Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2011, 06:50   #1
Stasiksis
Пользователь
 
Регистрация: 12.09.2011
Сообщений: 19
По умолчанию Транспонирование матрицы

Суть задачи, нужно мз стандартного потока данных ввести кол-во строк,столбоцв матрицы и саму матрицу.
Программа должна транспонировать матрицу.
В моем коде это выполняется только для квадратных матриц, не могу понять как сделать, чтобы матрица транспонировалась для произвольного кол-ва строк и столбцов.
Программу должна быть на языке Си.
простите,Не знаю как вводить код, исправлю,если подскажите, конечно.
Код:
#include <stdio.h>
#include <stdlib.h>
void **transpose(int**a, int m, int n)
{
int **mass2,p;
int i,j;
    mass2=(int**)malloc(sizeof(int*)*m);
    for(i=0;i<n;i++)
        mass2[i]=(int*)malloc(sizeof(int)*n);
    for (i=0;i<m;i++)
        for (j=0;j<n;j++)
            mass2[i][j]=a[j][i];
    printf("Транспонированная матрица имеет вид: \n");
    for (i=0;i<n;i++)
        {
            for (j=0;j<m;j++)
            printf("%d  ", mass2[i][j]);
            printf("\n\n");
        }
    free(mass2);
}
int main ()
{
int i,j,n,m;
int **a;
    n=0;
    printf( "Введите количество строк в матрице\n");
    scanf ("%d", &n);
    printf( "Введите количество столбцов в матрице\n");
    scanf("%d", &m);
    a=(int**)malloc(sizeof(int*)*m);
    for(i=0;i<n;i++)
        a[i]=(int*)malloc(sizeof(int)*n);
    printf ("Введите матрицу\n");
    for (i=0;i<n;i++)
        for (j=0;j<m;j++)
            scanf ("%d", &a[i][j]);
    transpose(a,m,n);
    free(a);
}
Stasiksis вне форума Ответить с цитированием
Старый 24.09.2011, 08:01   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Транспонирование матриц
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.09.2011, 09:04   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Мне как-то показалось, что код в приведенной ссылке тоже не очень хорошо умеет обращаться с неквадратными матрицами..

У ТС используется динамическая модель. Там все должно получаться практически на автомате. Нужно просто ее потщательнее проработать - аккурато проследить размеры.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 24.09.2011, 17:11   #4
Stasiksis
Пользователь
 
Регистрация: 12.09.2011
Сообщений: 19
По умолчанию

спасибо за ссылку
Stasiksis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
транспонирование матрицы Ислам Помощь студентам 3 08.06.2011 19:02
Транспонирование матрицы Tatum Паскаль, Turbo Pascal, PascalABC.NET 1 15.03.2011 19:32
транспонирование матрицы JS dropacid Помощь студентам 1 03.04.2010 22:14
транспонирование матрицы 6*6 на си fatefighter Общие вопросы C/C++ 1 17.03.2010 21:12