Страница 1 из 1

преобразование матрицы

Добавлено: 02 ноя 2010, 21:10
yunona_sorry
помогите, пожалуйста написать программу:
НАЗОВЕМ ДОПУСТИМЫМ ПРЕОБРАЗОВАНИЕМ МАТРИЦЫ ПЕРЕСТАНОВКУ ДВУХ СОСЕДНИХ СТРОК ИЛИ ДВУХ СОСЕДНИХ СТОЛБЦОВ. ДАНА ДЕЙСТВИТЕЛЬНАЯ КВАДРАТНАЯ МАТРИЦА ПОРЯДКА N. С ПОМОЩЬЮ ДОПУСТИМЫХ ПРЕОБРАЗОВАНИЙ ДОБИТЬСЯ ТОГО, ЧТОБЫ ЭЛЕМЕНТ МАТРИЦЫ, ОБЛАДАЮЩИЙ НАИМЕНЬШИМ ЗНАЧЕНИЕМ, РАСПОЛАГАЛСЯ В ПРАВОМ НИЖНЕМ УГЛУ МАТРИЦЫ

Re: преобразование матрицы

Добавлено: 03 ноя 2010, 01:17
BulldozerBSG
Можешь начать с этого:

Код: Выделить всё

int main (int argc, char *argv[])
{
  return 0;
}

Re: преобразование матрицы

Добавлено: 03 ноя 2010, 16:11
chesser
Тебе надо написать две функции: функция 1 меняет местами две соседние строки, функция 2 меняет местами два соседних столбца.
Затем ты находишь номера строки и столбца минимального элемента. Применяя функцию 2, добиваешься того, чтобы столбец, содержащий минимальный элемент, стал крайним правым столбцом. Затем, применяя функцию 1, добиваешься того, чтобы строка, содержащая минимальный элемент, стала крайней нижней. И все, минимальный элемент находится в положенном ему месте.

Re: преобразование матрицы

Добавлено: 03 ноя 2010, 21:14
flash1989
Если че , пиши, сделаю все в лучшем виде в краткий срок
icq: 588002847
email: flash_1989@ukr.net

Re: преобразование матрицы

Добавлено: 03 ноя 2010, 23:50
Sheka
Не вопрос! 255507394

Re: преобразование матрицы

Добавлено: 07 ноя 2010, 20:02
yunona_sorry
вот что у меня получилось! посмотрите, пожалуйста)


#include <stdio.h>
#include <math.h>
#include <conio.h>
void main()
{
float M[10][10];
int i, j, m, n, y;
printf ("\n введите матрицу");
scanf ("%d % d", &m,&n);
printf ("\nвведите элементы матрицы\n");
for (i=0; i<m; i ++)
for (j=0; j<n; j++);
scanf ("%f",&M[j]);
int flag;
float min;
flag=0;
min=M[1][1];
for (i=0;i<m; i++)
for (j=0; j<n;j++)
if (M[j]<min)
{
min=M[j];
x=i;
y=j;
};
for (i=0;i<m;i++)
for (j=0; j<n; j++)
if ((M[j]==min)&&((i!=x)||(j!=y)))
{
printf("\nсуществуют 2 минимальных элемента");
flag=1;
};
if (flag==0)
{
int k;
float buff;
for (k=0; k>=y; k++)
{
for (i=0;i<m-1;i++)
for (j=0; j<n-1;j++)
{
buff=M[j+1];
M[j+1]=M[j];
M[j]=buff;
};
}
for (k=0;k>=x;k++)
{
for (i=0;i<m-1;i++)
for (j=0;j<n-1;j++)
{
buff=M[i+1][j];
M[i+1][j]=M[j];
M[j]=buff;
}
};
for(i=0;i<n;i++)
{
for(j=0;j<n; j++)
printf ("%5.2f ", M[i][j]," ");
printf("\n");
};
};
}