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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2010, 21:50   #1
PPPPPP
Пользователь
 
Регистрация: 28.02.2010
Сообщений: 22
По умолчанию Транспонирование матрицы. Язык Си.

Требуется транспонировать матрицу относительно трех диагоналей: главной и следующей от главной в каждую сторону. Например, пусть было
1 2 3
4 5 6
7 8 9
то после транспонирования должно получиться
1 2 7
4 5 6
3 8 9
Как делается транспонирование относительно главной диагонали я понимаю, а тут не могу понять с чего подступить... Язык программирования: С. Использовать можно только функции библиотек <stdio.h> и <math.h>... Помогиите!
PPPPPP вне форума Ответить с цитированием
Старый 14.03.2010, 22:03   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Это розыгрыш. Ну нету у квадрата трёх диагоналей!

Указанный вами результат достигается однократным (а также троекратным) транспонированием.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 14.03.2010, 22:41   #3
Грымзик
Пользователь
 
Регистрация: 17.09.2009
Сообщений: 40
По умолчанию

Да все тут нормально, по-моему.

Код:
for(i=0; i<N; ++i)
     for(j=i+2; j<N; ++j)
     {
          temp=m[i][j];
          m[i][j]=m[j][i];
          m[j][i]=temp;
     }
Грымзик вне форума Ответить с цитированием
Старый 19.03.2010, 01:31   #4
PPPPPP
Пользователь
 
Регистрация: 28.02.2010
Сообщений: 22
По умолчанию

А кто поможет то что я прошу вставить в уже готовую программу? По сути, мне надо модернизировать существующую прогу такого вида (она выводит на экран исходную матрицу, и одновременно с этим матрицу транспонированную):
Код:
#include "stdafx.h"

#include<stdio.h> 
void main() 
{
int n,j,n1,i,d;
float a,sum,mas[10][10]; 
printf("Vvedite razmer matricy"); 
scanf("%d %d", &n,&n1); 
if(n==n1)
{
printf("Zadajte chisla matricy"); 
for(i=0;i<n;i++) 
for(j=0;j<n;j++) 
scanf("%f",&mas[i][j]); 

printf("Matrica\n"); 
for(i=0;i<n;i++) 
{ 
for(j=0;j<n;j++) 
printf("%f\t",mas[i][j]); 
printf("\n"); 
}
  printf("Transponirovannaya matrica \n");
{
a=mas[j][i];
mas[j][i]=mas[i][j];
mas[i][j]=a;
}
  for(i=0;i<n;i++)
{
  for(j=0;j<n;j++)
  
 printf("%f\t",mas[j][i]);
 printf("\n");
}
 scanf("%f",&mas[j][i]);
 scanf("%f",&n);
}
}
А мне надо, чтобы она еще транспонировала матрицу так, как я написал в первом сообщении, то есть например для матрицы 3х3 меняла только числа по углам. Помогиите!!

Последний раз редактировалось PPPPPP; 19.03.2010 в 01:32. Причина: обновление
PPPPPP вне форума Ответить с цитированием
Старый 21.03.2010, 12:30   #5
PPPPPP
Пользователь
 
Регистрация: 28.02.2010
Сообщений: 22
По умолчанию

Ни у кого нет идей?! Хоть что-то бы...
PPPPPP вне форума Ответить с цитированием
Старый 21.03.2010, 12:53   #6
zoluxa
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 53
По умолчанию

ти шось таке морозиш, Грымзик все правильно написав, воно буде транспонувати тобі любу квадратну матрицю, а то шо якісь числа поміняти то вже не транспонування а твоя фантазія!
zoluxa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование матрицы. (транспонирование) AndyShafl Помощь студентам 9 23.12.2009 17:25
PHP. Транспонирование матрицы POPOV Помощь студентам 2 04.02.2009 01:08
транспонирование квадратной матрицы 777UFO777 Общие вопросы Delphi 1 04.12.2008 19:31
Транспонирование матрицы на i8080 RANDOM223 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 29.04.2008 17:33