Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2011, 22:16   #1
Ворожея
 
Аватар для Ворожея
 
Регистрация: 22.02.2011
Сообщений: 5
По умолчанию Упорядочить строки массива по возрастанию их сумм

Здравствуйте
помогите, пожалуйста, с задачкой... она, наверно, простая, но у меня не получается
Условие:
Массивы динамические. Элементы 2-мерного массива M*N - целые числа; M и N пользователь вводит с клавиатуры. Заполнить, распечатать. Упорядочить строки массива по возрастанию их сумм.

Вот что у меня последнее получилось
Код:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

void main()
{
  clrscr();
  int M, N;
  cout<<"Vvedite kolichestvo strok i stolbcov: ";
  cin>>M>>N;

  int **a;
  a=new int*[M];
  for (int i=0;i<M;i++)
  a[i] = new int[N];

  for (i=0;i<M;i++)
  for (int j=0;j<N;j++)
  {
    cout<<"Vvedite element "<<i<<" stroki "<<j<<" stolbca "<<endl;
    cin>>a[i][j];
  }
  cout<<endl;

  for (i=0;i<M;i++)
  {
    for (int j=0;j<N;j++)
    {
      cout<<setw(5)<<a[i][j];
    }
    cout<<endl;
  }
  cout<<endl;

  int sum1, sum2;
  int t;

   for(i=0;i<M-1;i++)
   {
     sum1=sum2=0;

     for(int j=0;j<N;j++)
      {
       sum1+=a[i][j];
       sum2+=a[i+1][j];
      }

     if (sum1>sum2)
       {
	for(j=0;j<N;j++)
	{
	t=a[i][j];
	a[i][j]=a[M-1][j];
	a[M-1][j]=t;
	}
       }
     }

  cout<<endl;

  for (i=0;i<M;i++)
  {
    for (int j=0;j<N;j++)
    {
      cout<<setw(5)<<a[i][j];
    }
    cout<<endl;
  }

  getch ();
}
я понимаю в чём ошибка, но исправить так, чтобы работало правильно, не получается. я ещё пробовала сравнивать именно с 0 сначала, но так у меня тоже не получилось... очень надеюсь на вашу помощь. заранее спасибо
Ворожея вне форума Ответить с цитированием
Старый 26.05.2011, 20:54   #2
Ворожея
 
Аватар для Ворожея
 
Регистрация: 22.02.2011
Сообщений: 5
По умолчанию

если кому-то вдруг когда-то понадобится

Код:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

void main()
{
  clrscr();
  int M, N;
  cout<<"Vvedite kolichestvo strok i stolbcov: ";
  cin>>M>>N;

  int **a;
  a=new int*[M];
  for (int i=0;i<M;i++)
  a[i] = new int[N];

  for (i=0;i<M;i++)
  for (int j=0;j<N;j++)
  {
    cout<<"Vvedite element "<<i<<" stroki "<<j<<" stolbca "<<endl;
    cin>>a[i][j];
  }
  cout<<endl;

  for (i=0;i<M;i++)
  {
    for (int j=0;j<N;j++)
    {
      cout<<setw(5)<<a[i][j];
    }
    cout<<endl;
  }
  cout<<endl;

  int sum1, sum2;
  int t;
  int flag=1;

  do {

  flag=0;
   for(i=0;i<M-1;i++)
   {
     sum1=sum2=0;

     for(int j=0;j<N;j++)
      {
       sum1+=a[i][j];
       sum2+=a[i+1][j];
      }

     if (sum1>sum2)
       {
	flag++;
	for(j=0;j<N;j++)
	{
	t=a[i][j];
	a[i][j]=a[i+1][j];
	a[i+1][j]=t;
	}
       }
     }
   } while (flag!=0);


  cout<<endl;

  for (i=0;i<M;i++)
  {
    for (int j=0;j<N;j++)
    {
      cout<<setw(5)<<a[i][j];
    }
    cout<<endl;
  }

  getch ();
}
Ворожея вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. упорядочить столбцы матрицы по возрастанию сумм элементов этого столбца ДваДваВо7 Помощь студентам 2 09.02.2011 16:40
Упорядочить колонки матрицы по возрастанию wlll Помощь студентам 8 27.11.2010 09:06
Упорядочить колонки матрицы по возрастанию wlll Помощь студентам 2 25.11.2010 17:14
В матрице упорядочить строки по возрастанию максимальных элементов. Помогите найти ошибку. amerhant Помощь студентам 3 16.01.2010 19:39
Упорядочить по возрастанию элементы.. TemaTim Паскаль, Turbo Pascal, PascalABC.NET 2 16.05.2009 19:00