Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двухмерные динамические массивы 
V
    Опции темы
Elen123321
Дата 12.11.2011, 22:04 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.11.2011
Где: Беларусь

Репутация: нет
Всего: нет



В матрице размером NхM упорядочить строки по возрастанию их наибольших элементов.

Код

//---------------------------------------------------------------------------
#include <vcl.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int i,j, n, m, max[m], temp;        // n, m - размеры массива
printf(" Input size N : ");
  scanf("%d",&n);
printf(" Input size M : ");
  scanf("%d",&m);
int **a;
a = new int *[n];        // захват памяти под указатели
  for(i=0; i<n; i++)
    a[i] = new int [m];        // и под элементы
puts("\n Input Massiv A:");
for(i=0; i<n;i++)
   for(j=0; j<m;j++)
        scanf("%lf", &a[i][j]);

  for(i=0; i<n;i++) {       // здесь д.б. поиск наибольшего элемента в строке
 for(j=0; j<m; j++) {
   if (j==0 || a[i][j] > max[j]) max[j] = a[i][j];
 }  }                      
  for(j=0; j<m-1;j++)  //а здесь начало упорядочения строк
     if(max[j]>max[j+1]){
     temp=a[i][j];       //временная переменная
     a[i][j]=a[i][j+1];
     a[i][j+1]=temp;
   } 
    puts("\n Result Massiv A:");
    printf("%lf", &a[i][j]);

for(i=0; i<n; i++)        // освобождение памяти
        delete []a[i];
        delete []a;
puts("\n Delete !");
puts("\n Press any key ... ");
getch();
          return 0;
}
//---------------------------------------------------------------------------

Конечно же неверно и не работает.

PM MAIL WWW ICQ   Вверх
borisbn
Дата 13.11.2011, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Код

#include <vector>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <stdlib.h>

using namespace std;

const int ROW_COUNT = 5;
const int COL_COUNT = 10;

typedef vector< int > row_t;
vector< row_t > matrix( ROW_COUNT, row_t( COL_COUNT ) );

int main()
{
// Заполнение
    for ( int i = 0; i < ROW_COUNT; i++ ) {
        for ( int j = 0; j < COL_COUNT; j++ ) {
            matrix[ i ][ j ] = rand() % 100;
            cout << setw( 2 ) << matrix[ i ][ j ] << "  ";
        }
        cout << endl;
    }
    cout << endl;
// Запомнить индексы максимальных элементов для каждой строки
    vector< int > max_cols_idx( ROW_COUNT, 0 );
    for ( int i = 0; i < ROW_COUNT; i++ ) {
        for ( int j = 1; j < COL_COUNT; j++ )
            if ( matrix[ i ][ j ] > matrix[ i ][ max_cols_idx[ i ] ] )
                max_cols_idx[ i ] = j;
//        cout << i << " " << max_cols_idx[ i ] << " " << matrix[ i ][ max_cols_idx[ i ] ] << endl;
    }

// Собственно сортировка (пузырьковая - самая простая)
    for ( int i = 0; i < ROW_COUNT - 1; i++ )
        for ( int ii = i + 1; ii < ROW_COUNT; ii++ )
            if ( matrix[ ii ][ max_cols_idx[ ii ] ] < matrix[ i ][ max_cols_idx[ i ] ] )
            {
                std::swap( matrix[ ii ], matrix[ i ] );
                std::swap( max_cols_idx[ ii ], max_cols_idx[ i ] );
            } 

// Вывод
    for ( int i = 0; i < ROW_COUNT; i++ ) {
        for ( int j = 0; j < COL_COUNT; j++ ) {
            cout << setw( 2 ) << matrix[ i ][ j ];
            cout << ( ( j == max_cols_idx[ i ] ) ? "* " : "  " );
        }
        cout << endl;
    }
}

Цитата

83  86  77  15  93  35  86  92  49  21  
62  27  90  59  63  26  40  26  72  36  
11  68  67  29  82  30  62  23  67  35  
29   2  22  58  69  67  93  56  11  42  
29  73  21  19  84  37  98  24  15  70  

11  68  67  29  82* 30  62  23  67  35  
62  27  90* 59  63  26  40  26  72  36  
83  86  77  15  93* 35  86  92  49  21  
29   2  22  58  69  67  93* 56  11  42  
29  73  21  19  84  37  98* 24  15  70  


http://liveworkspace.org/code/b91e2e886378...785768f7c520105

Единственное, чего не понял - при чём здесь дебилдер ?

Это сообщение отредактировал(а) borisbn - 13.11.2011, 09:47


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
borisbn
Дата 13.11.2011, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135





--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Elen123321
Дата 13.11.2011, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.11.2011
Где: Беларусь

Репутация: нет
Всего: нет



Задание нужно выполнить в билдере. 

спасибо, справилась
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.