Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (13.12.2007 в 12:06)
Можно отталкиваться от следующей модификации программы
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
  int j,N,M;
  int *A;
  int counter = 0;
  int *B;
  cout << "Enter N\n";
  cin >> N;
  cout << "Enter M\n";
  cin >> M;

  try
  {
    // Выделяем память под массив *A
    A = new int[N*M];
    counter = 0;
    for(int i = 0; i < N; i++)
    for(int j = 0; j < M; j++)
    {
      cin >> A[j*M + i];
      if(A[j*M + i] < 0) counter++;
    } 
  
    // Выделяем память под массив B
    B = new int[counter];

    // Заполняем массив B 
    counter = 0;
    for(int i = 0; i < N; i++)
    for(int j = 0; j < M; j++)
    {
      if(A[j*M + i] < 0)
      {
        B[counter] = A[j*M + i];
        counter++; 
      }
    }

    // Сортируем массив В
    int tmp;
    for(int i = 0; i < counter; i++)
    for(int j = 0; j < counter-1; j++) 
    {
      if(B[j]>B[j+1])
      {
        tmp = B[j];
        B[j] = B[j+1];
        B[j+1] = tmp;
      }
    }

    // Выводим массив B
    for(int i = 0; i < counter; i++)
    {
      cout << B[i] << ' ';
    }

    // Освобождаем память
    delete [] A;
    delete [] B;
  }
  catch(bad_alloc exp)
  {
    cout << "Не удалось выделить память\n";
    return 1;
  }

return 0;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: