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

Из существующей матрицы n*m записать в новую матрицу все элементы исходной матрицы, кроме максимального и минимального элемента из каждой строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевести код с Pascal http://www.cyberforum.ru/cpp-beginners/thread907684.html
помогите перевести 2 программы из паскаль в С++ 1) uses graphABC; begin setwindowsize(500,500); setpenwidth(4); arc(250,200,50,-90,90); arc(250,320,70,-90,90); line(230,150,250,150);
C++ Написать программу нахождения n-го элемента реккурентной последовательности Написать программу нахождения n-го элемента реккурентной последовательности: a0= 1, aI= - 2,a(i+1)= a(i)□2a(i - 1) (язык С++) http://www.cyberforum.ru/cpp-beginners/thread907683.html
C++ Перегрузка оператора '+' для char* вне класса
Хочу перегрузить конкатенацию массивов char'ов через операцию '+'. Не могу понять, возможно ли запустить следующую конструкцию, подправив её конечно же перед этим. Информация, которая есть в интернете по этому поводу путает, не получается собрать всё в единое целое. Я представляю себе это как-то так: char* operator+ (char* first, char* second) { int len_1 = Lenght (first), len_2 = Lenght...
no operator found which takes a right/left-hand operand of type "AR" C++
Нашел на форуме исходник программы, собрал, но выдает ошибку описанную выше #include <iostream> #include <conio.h> #include <string.h> #include <assert.h> using namespace std; class AR{ public: AR(int=5); AR(const AR&);
C++ В предложении найти все слова, отличные от последнего http://www.cyberforum.ru/cpp-beginners/thread907666.html
Такие дела, дали задание, при этом ничего не объяснили, я хз как тут делать добрые форумчане, помогите пожалуйста;) В предложении найти все слова, отличные от последнего. В каждом найденном слове удалить первую букву. Результат вывести на печать.
C++ Считать с файла информацию о команде "Название" "Город", количество побед, поражений, ничьих, забитых и пропущенных мячей Здравствуйте. Необходимо написать программу С++ : "Считать с файла информацию о команде "Название" "Город", количество побед, поражений, ничьих, забитых и пропущенных мячей. Программа должна сама вывести количество очков по формуле: (кол-во побед)*3+(кол-во ничьих). необходимо упорядочить данные о командах по убыванию количества набранных ими очков, записать отсортированные данные в новый... подробнее

Показать сообщение отдельно
tzeentch
 Аватар для tzeentch
25 / 25 / 2
Регистрация: 13.04.2013
Сообщений: 79
20.06.2013, 16:13     Из существующей матрицы n*m записать в новую матрицу все элементы исходной матрицы, кроме максимального и минимального элемента из каждой строки
Я-бы тупо отсортировал строки, а потом выпилил первый и последний элементы
Но ладно...

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 <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int main() {
  srand( time( 0 ) );
  const int N = 10, M = 10;
 
  int mat[N][M], mat2[N][M];
 
    // Заполняем матрицу 1
  for( int i = 0; i < N; i++ )
    for( int j = 0; j < M; j++ )
      mat[i][j] = (rand() % 89) + 10;
 
    // Выводим матрицу 1
  for( int i = 0; i < N; i++ ) {
    cout << '\n';
    for( int j = 0; j < M; j++ )
      cout << mat[i][j] << ' ';
  }
 
  int nmax, nmin;
  int max[M], min[M];
 
    // Для каждой строки ищем максимальный элемент, и запоминаем его индекс
  for( int i = 0; i < N; i++ ) {
    nmax = mat[i][0];
    nmin = mat[i][0];
    max[i] = 0;
    min[i] = 0;
    for( int j = 1; j < M; j++ ) {
      if( mat[i][j] > nmax ) { nmax = mat[i][j]; max[i] = j; };
      if( mat[i][j] < nmin ) { nmin = mat[i][j]; min[i] = j; };
    }
  }
 
    // Заполняем матрицу 2
  for( int i = 0; i < N; i++ ) {
    for( int j = 0; j < M; j++ ) {
      if( j != max[i] && j != min[i] ) // Если это НЕ минимальный или максимальный элемент...
        mat2[i][j] = mat[i][j];  //копируем его
      else
        mat2[i][j] = 0;
    }
  }
 
  cout << "\n\n";
 
    // Выводим матрицу 2
  for( int i = 0; i < N; i++ ) {
    cout << '\n';
    for( int j = 0; j < M; j++ )
      if( mat2[i][j] ) cout << mat2[i][j] << ' ';
      else cout << "-- ";
  }
}
Добавлено через 16 минут
Из любви к искусству: вариант с сортировкой.

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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int main() {
  srand( time( 0 ) );
  const int N = 5, M = 5;
 
  int mat[N][M], mat2[N][M];
 
    // Заполняем матрицу 1
  for( int i = 0; i < N; i++ )
    for( int j = 0; j < M; j++ )
      mat[i][j] = (rand() % 89) + 10;
 
    // Выводим матрицу 1
  for( int i = 0; i < N; i++ ) {
    cout << '\n';
    for( int j = 0; j < M; j++ )
      cout << mat[i][j] << ' ';
  }
 
    // Сортируем строки
  for( int k = 0; k < N; k++ )
    for( int i = 0; i < M-1; i++ )
      for( int j = i+1; j < M; j++ )
        if( mat[k][i] > mat[k][j] )
          swap( mat[k][i], mat[k][j] );
 
    // Заполняем матрицу 2
  for( int i = 0; i < N; i++ ) {
    mat2[i][0] = mat2[i][M-1] = 0;
    for( int j = 1; j < M - 1; j++ ) {
      mat2[i][j] = mat[i][j];
    }
  }
 
  cout << "\n\n";
 
    // Выводим матрицу 2
  for( int i = 0; i < N; i++ ) {
    cout << '\n';
    for( int j = 0; j < M; j++ )
      if( mat2[i][j] ) cout << mat2[i][j] << ' ';
      else cout << "-- ";
  }
}
Правда препод может придраться, что элементы исходной матрицы перемешаны, но в условии не сказано, что так нельзя...
 
Текущее время: 06:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru