Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 7
1

Переставляя строки и столбцы матрицы, переместить наибольший по модулю элемент в верхнюю левую строку

13.01.2013, 21:49. Просмотров 597. Ответов 3
Метки нет (Все метки)

Написать программу, которая, переставляя строки и столбцы заданной матрицы размером 5×5 , перемещает наибольший по модулю элемент в верхнюю левую строку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2013, 21:49
Ответы с готовыми решениями:

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

Переставляя строки и столбцы матрицы, добиться, чтобы наибольший элемент оказался в верхнем левом углу
Дана целочисленная матрица размером 7*4. Переставляя ее строки и столбцы, добиться того, чтобы...

Переставляя строки и столбцы матрицы, переместить наибольший элемент в верхний левый угол
Дана матрица NxM. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый...

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

3
40 / 40 / 32
Регистрация: 24.11.2012
Сообщений: 200
13.01.2013, 22:17 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <conio.h>
#include <stdio.h>
 
 int matr[5][5];
 
 
void print(void)
{
 int i,j;
 
 for(i=0;i<5;i++)
 {
   for(j=0;j<5;j++)
     printf("%d ",matr[i][j]);
 
   printf("\n");
 }
 printf("\n");
}
 
 
int main()
{
  int maxi=0,maxj=0,max=0,teki=0,tekj=0,tmp=0,i,j;
 
 
  for(i=0;i<5;i++)
   for(j=0;j<5;j++)
    matr[i][j]=i*j;
 
  print();
 
 
 
 
  max=matr[0][0];
 
  for(i=0;i<5;i++)
  for(j=0;j<5;j++)
  {
   if(matr[i][j]>max)
   max=matr[i][j];
   maxi=i;
   maxj=j;
  }
 
  teki=maxi;
  tekj=maxj;
 
  while(teki>0)
  {
    for(j=0;j<5;j++)
    {
      tmp=matr[teki-1][j];
      matr[teki-1][j]=matr[teki][j];
      matr[teki][j]=tmp;
    }
    print();
    teki--;
  }
 
  while(tekj>0)
  {
    for(i=0;i<5;i++)
    {
      tmp=matr[i][tekj-1];
      matr[i][tekj-1]=matr[i][tekj];
      matr[i][tekj]=tmp;
    }
    print();
    tekj--;
  }
 
  printf("\n");
 
 print();
 
  getch();
  return 0;
}
1
436 / 404 / 132
Регистрация: 21.01.2012
Сообщений: 974
22.01.2013, 14:08 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define ROWS 7
#define COLS 6
 
void dump_row(int *row, size_t size, size_t field_size)
{
    while (size--)
        printf("%*d", field_size, *row++);
    putchar('\n');
}
 
void dump_matrix(int **matrix, size_t rows, size_t cols, size_t field_size)
{
    while (rows--)
        dump_row(*matrix++, cols, field_size);
}
 
void max_element(int **matrix, size_t rows, size_t cols, size_t *x, size_t *y)
{
    int max = INT_MIN, i, j;
    *x = 0;
    *y = 0;
    for (i = 0; i < rows; i++)
        for (j = 0; j < cols; j++)
            if (abs(matrix[i][j]) > max)
                max = abs(matrix[*x = i][*y = j]);
}
 
void swap(int *a, int *b)
{
    int buffer = *a;
    *a = *b;
    *b = buffer;
}
 
void some_function(int **matrix, size_t rows, size_t cols, size_t x, size_t y)
{
    size_t i;
    for (i = 0; i < rows; i++)
        swap(&matrix[i][0], &matrix[i][y]);
 
    for (i = 0; i < cols; i++)
        swap(&matrix[0][i], &matrix[x][i]);
}
 
int main()
{
    int i, j;
    size_t x, y;
    int **matrix = (int**) malloc(sizeof(int*) * ROWS);
    srand(time(0u));
    for (i = 0; i < ROWS; i++)
    {
        matrix[i] = (int*) malloc(sizeof(int) * COLS);
        for (j = 0; j < COLS; j++)
            matrix[i][j] = rand() % 21 - 10;
    }
 
    dump_matrix(matrix, ROWS, COLS, 4u);
    max_element(matrix, ROWS, COLS, &x, &y);
    some_function(matrix, ROWS, COLS, x, y);
    putchar('\n');
    dump_matrix(matrix, ROWS, COLS, 4u);
 
    for (i = 0; i < ROWS; i++)
        free(matrix[i]);
    free(matrix);
    return 0;
}
1
КонецСвета
22.01.2013, 14:37     Переставляя строки и столбцы матрицы, переместить наибольший по модулю элемент в верхнюю левую строку
  #4
 Комментарий модератора 
Евгений345, следующий дубль принесет вам карточку.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2013, 14:37
Привет! Вот еще темы с ответами:

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

Переставляя строки и столбцы матрицы, переместить наименьший элемент в нижний правый угол
дана матрица nxm. переставляя ее строки и столбцы, переместить наименьший элемент в нижний правый...

Переставляя строки и столбцы матрицы, переместить max (min) элемент в левый (правый) верхний (нижний) угол
Дана квадратная матрица порядка n*n . Переставляя её строки и столбцы, добиться того, чтобы...

Переставляя строки и столбцы матрицы, добиться того, чтобы ее наибольший элемент оказался в центре
не могу решить


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.