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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.05.2009, 23:36   #1
Master23
 
Регистрация: 29.05.2009
Сообщений: 5
По умолчанию Программирование алгоритмов над многомерными динамическими массивами

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


Код:
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
main()
{
// вывод матрицы
int N;
cout<<"Enter the dimension of the matrix"<<endl;
cout<<"N=";
cin>>N;
cout<<"Matrix A:"<<endl;
double** A=new double* [N];
int i,j;
for (i=0; i<N; i++)
   A[i]=new double [N];
for (i=0;i<N; i++)
  for (j=0; j<N; j++)
     A[i][j]=double(random(20)-10);
for (i=0;i<N; i++){
  for (j=0; j<N; j++)
     cout <<A[i][j]<<" ";
  cout<<endl;
}
// объявление второй матрицы
double** B=new double* [N];
for (i=0; i<N; i++)
   B[i]=new double [N];
for (i=0;i<N; i++)
  for (j=0; j<N; j++)
     B[i][j]=A[i][j];
// само задание
for (i=0;i<N;i++)
for (j=0;j<N;j++)
{
int min=A[0][0];
for (int k=0;k<i;k++)
for (int l=0;l<j;k++)
if(A[k][l]<min)
min=A[k][l];
B[i][j]=min;
}
for (i=0; i<N; i++)
for (j=0; j<N; j++)
cout <<B[i][j]<<" ";
cout<<endl;

getch();
}
В общем надо создать матрицу А. И элементы которые будут заменены вывести в матрице Б, т.к. если заменять прямо в матрице А элементы могут быть все одинаковые(если элемент [0][0] будет наименьшим во всей матрице).
Не могу понять что делать дальше, чтобы код заработал
Заранее спасибо за помощь.

Модератор: тег CODE

Последний раз редактировалось Sazary; 29.05.2009 в 23:39.
Master23 вне форума
Старый 30.05.2009, 00:27   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Подправленный код.

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

main()
{
// вывод матрицы
srand(time(NULL));
int N;
cout<<"Enter the dimension of the matrix"<<endl;
cout<<"N=";
cin>>N;
cout<<"Matrix A:"<<endl;
int i,j;
double** A=new double* [N];
for (i=0; i<N; i++)
  A[i]=new double [N];
  
for (i=0;i<N; i++)
  for (j=0; j<N; j++)
     A[i][j]=double(rand()%20-5);
     
for (i=0;i<N; i++)
{
  for (j=0; j<N; j++)
     {
      cout.width(4);
      cout <<A[i][j]<<" ";
     }
  cout<<endl;
}
// объявление второй матрицы
double** B=new double* [N];
for (i=0; i<N; i++)
   B[i]=new double [N];
   
for (i=0;i<N; i++)
  for (j=0; j<N; j++)
     B[i][j]=A[i][j];
// само задание

double min;
int k,l;
for (i=0;i<N;i++)
 for (j=0;j<N;j++)
  {
   min = A[0][0];
   for(k=0; k<=i; k++)
    for(l=0; l<=j; l++)
     if(A[k][l]<min) min = A[k][l];
  B[i][j] = min;   
  }

cout<<endl;  
for (i=0; i<N; i++)
 {
 for (j=0; j<N; j++)
  {
   cout.width(4);
   cout <<B[i][j]<<" ";
  }
 cout<<endl;
 }
getch();
return 0;
}
Основные ошибки были тут:
Код:
for (int k=0;k<=i;k++)
for (int l=0;l<=j;l++)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 30.05.2009, 04:28   #3
Master23
 
Регистрация: 29.05.2009
Сообщений: 5
По умолчанию

Спасибо за помощь.

Последний раз редактировалось Master23; 30.05.2009 в 04:37.
Master23 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с динамическими массивами _grusha_ Помощь студентам 2 22.04.2009 19:46
работа с многомерными массивами tik17 Помощь студентам 14 14.03.2009 20:07
Проблема с динамическими массивами Arassir Помощь студентам 2 11.11.2008 00:15
Работа с многомерными массивами в функции. Очередной вопос начинающего (#005) Albert2008 Компоненты Delphi 14 13.08.2008 22:03
Помогите решить задачу с динамическими массивами и строками символов Andres Помощь студентам 2 31.01.2008 11:09