Форум программистов, компьютерный форум CyberForum.ru

Запутанная матрица - C++

Восстановить пароль Регистрация
 
Manqnian
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 25
17.03.2011, 17:28     Запутанная матрица #1
Как решить следующую задачу?

N(10, 10)
Из положительных элементов матрицы N сформировать матрицу M (10, KMAX), располагая их в строках матрицы подряд, где KMAX-максимальное число положительных элементов строки матрицы N. Записать нули на место отсутствующих элементов. Отпечатать обе матрицы в общепринятом виде.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2011, 17:28     Запутанная матрица
Посмотрите здесь:

матрица C++
C++ матрица
C++ Матрица
C++ Матрица
матрица с++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
17.03.2011, 23:02     Запутанная матрица #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
#include <cstdio>
#include <ctime>
#include <cstdlib>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  int width  = 10;
  int height = 10;
  int **source_matrix = new int*[height];
 
  for (int i = 0; i < height; ++i) {
    source_matrix[i] = new int[width];
    for (int j = 0; j < width; ++j)
      printf("%4d", source_matrix[i][j] = rand() % 101 - 50);
    printf("\n");
  }
  printf("\n");
 
  int max_positives_in_row = 0;
  for (int i = 0; i < height; ++i) {
    int positives_in_row = 0;
    for (int j = 0; j < width; ++j)
      if (source_matrix[i][j] > 0)
        ++positives_in_row;
    if (positives_in_row > max_positives_in_row)
      max_positives_in_row = positives_in_row;
  }
 
  printf("Max positives in row: %d.\n\n", max_positives_in_row);
 
  int **destination_matrix = new int*[height];
 
  for (int i = 0; i < height; ++i) {
    destination_matrix[i] = new int[max_positives_in_row];
    int destination_matrix_index = 0;
    for (int j = 0; j < width; ++j)
      if (source_matrix[i][j] > 0)
        destination_matrix[i][destination_matrix_index++] =
          source_matrix[i][j];
    for (int j = destination_matrix_index; j < max_positives_in_row; ++j)
      destination_matrix[i][j] = 0;
  }
 
  for (int i = 0; i < height; ++i) {
    for (int j = 0; j < max_positives_in_row; ++j)
      printf("%4d", destination_matrix[i][j]);
    printf("\n");
  }
 
 
  for (int i = 0; i < height; ++i)
    delete source_matrix[i];
  delete source_matrix;
 
  for (int i = 0; i < height; ++i)
    delete destination_matrix[i];
  delete destination_matrix;
  return 0;
}
Manqnian
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 25
17.03.2011, 23:24  [ТС]     Запутанная матрица #3
Спасибо!!!
fruktik
 Аватар для fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
18.03.2011, 00:23     Запутанная матрица #4
lemegeton, ох и переменные и названия у вас)
Yandex
Объявления
18.03.2011, 00:23     Запутанная матрица
Ответ Создать тему
Опции темы

Текущее время: 05:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru