Форум: Форум C++Разное
Новые темы: 00
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Найти элементы матрицы которые ниже побочной диагонали и запомнить?
 
 автор: Afinogen   (11.12.2007 в 02:06)   письмо автору
 
 

Нужно найти элементы матрицы которые ниже побочной диагонали и запомнить. Ни как не могу сформулировать условие для их нахождения :(

  Ответить  
 
 автор: cheops   (11.12.2007 в 03:44)   письмо автору
 
   для: Afinogen   (11.12.2007 в 02:06)
 

Под побочной диаганалью имеется в виду след матрицы (из верхнего левого угла в нижний правый) или зеркальное отображение следа (из верхнего правого угла в нижний левый)?

  Ответить  
 
 автор: Afinogen   (11.12.2007 в 03:58)   письмо автору
 
   для: cheops   (11.12.2007 в 03:44)
 

След из верхнего левого в правый нижний это главная диагональ, а зеркальное отображение следа из правого верхнего в левый нижний это побочная диагональ.

  Ответить  
 
 автор: cheops   (11.12.2007 в 04:27)   письмо автору
 
   для: Afinogen   (11.12.2007 в 02:06)
 

Можно поступить следующим образом
#include <iostream>
#include <vector>
using namespace std;

int main()
{
  // Вектор с целочисленными элементами
  vector<int> coll, result;
  
  int count = 0;
  cout << "Введите размер матрицы N: ";
  cin >> count;

  try
  {
    // Заполняем коллекцию
    int temp = 0;
    for(int j = 0; j < count; j++)
    {
      for(int i = 0; i < count; i++)
      {
        cout << "Введите элемент (" << j << "," << i << "): ";
        cin >> temp;
        coll.push_back(temp);
      }
    }
    // Выводим только что введённую матрицу
    cout << "Вы ввели следующую матрицу:\n";
    for(int j = 0; j < count; j++)
    {
      for(int i = 0; i < count; i++)
      {
        cout << coll[j*count + i] << " ";
      }
      cout << "\n";
    }
      cout << "\n";
    // Запоминаем элементы, расположенные под побочной 
    // диагональю
    for(int j = 0; j < count; j++)
    {
      for(int i = count - 1; i >=0; i--)
      {
        if(i <= j)
        {
          result.push_back(coll[j*count + (count - 1 - i)]);
        }
      }
    }
    // Выводим результат
    cout << "\nЭлементы матрицы, расположенные под побочной диагональю:\n";
    for(int i = 0; i < result.size(); i++)
    {
      cout << result[i] << "\n";
    }
  }
  catch(bad_alloc)
  {
    cout << "Не удалось выделить память под коллекцию\n";
  }

  return 0;
}

  Ответить  
 
 автор: Afinogen   (11.12.2007 в 12:24)   письмо автору
 
   для: cheops   (11.12.2007 в 04:27)
 

А можно др способом? Что за заголовочный файл vector? Компилятор ругается.

  Ответить  
 
 автор: cheops   (11.12.2007 в 12:56)   письмо автору
 
   для: Afinogen   (11.12.2007 в 12:24)
 

В общем можно... вы в какой среде компилируете файл (чтобы воспроизвести ваше окружение можно было)?

PS <vector> - это один из заголовочных файлов стандартной библиотеки шаблонов STL - эту библиотеку должна поддерживать любая реализация C++ (последних лет разумеется).

  Ответить  
 
 автор: Afinogen   (11.12.2007 в 15:20)   письмо автору
 
   для: cheops   (11.12.2007 в 12:56)
 

Компилирую в Borland C++ Builder 6

  Ответить  
 
 автор: Afinogen   (11.12.2007 в 15:32)   письмо автору
 
   для: Afinogen   (11.12.2007 в 15:20)
 

Упс..., извиняюсь, начал другую программку делать, оказалось с компилятором что-то, все время выдает фатальную ошибку - не может создать ссылки и не создает ехе файл...

  Ответить  
 
 автор: cheops   (11.12.2007 в 16:53)   письмо автору
 
   для: Afinogen   (11.12.2007 в 15:20)
 

В C++ Builder бы должно всё работать, я как раз его компилятором (правда в консоли) bcc32 отлаживал программу.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования