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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2014, 23:22   #1
Михаид
 
Регистрация: 01.12.2014
Сообщений: 6
По умолчанию В двухмерном массиве, размещенном в куче и заполненном случайными вещественными значениями

"В двухмерном массиве, размещенном в куче и заполненном случайными вещественными значениями, определить максимальных и минимальный элемент и их координаты в массиве(номер строки и столбца)."
Вообщем такая проблема, сделал прогу в статике, а как оказалось нужно в динамике, т.к двухмерный массив размещен в куче. Не могу разобрать эту тему, если можете, помогите, ну или намекните как это переделать в динамику.
Вот сам код в статике:
Код:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
    float min=INT_MAX,max=-INT_MAX;
    int minx=-1,miny=-1,maxx=-1,maxy=-1;
    int x=0,y=0;
    cout<<"ENTER X and Y of Matr\n";
    cin>>x>>y;

    if (x && y)
    {
        float arr[x][y];

        for (int i=0;i<x;i++)
        {
            for (int j=0;j<y;j++)
            {
                arr[i][j]=rand()%100-50;
                cout<<arr[i][j]<<"  ";

                if (arr[i][j]<min)
                {
                    min=arr[i][j];
                    minx=i;
                    miny=j;
                }

                if (arr[i][j]>max)
                {
                    max=arr[i][j];
                    maxx=i;
                    maxy=j;
                }

            }
            cout<<"\n\n";
        }

        cout<<"\n";

        if (maxx>=0 && maxy>=0) cout<<"max= "<<max<<"   x="<<maxx<<"   x="<<maxy<<"\n";

        if (minx>=0 && miny>=0) cout<<"min= "<<min<<"   x="<<minx<<"   y="<<miny<<"\n";

    }
    else cout<<"Error";
}
Также сделана задача на паскале, ну там лично для меня намного проще(если надо могу скинуть)

Последний раз редактировалось Михаид; 03.12.2014 в 23:26.
Михаид вне форума Ответить с цитированием
Старый 04.12.2014, 08:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Классика: http://www.programmersforum.ru/showthread.php?t=117524
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2014, 11:53   #3
Михаид
 
Регистрация: 01.12.2014
Сообщений: 6
По умолчанию

Работает вроде бы правильно, единственное выдает ложный jmax
Код:
#include "stdafx.h"
#include <iostream>
#include <ctime>
 #include <conio.h>
using namespace std;
 
int main()
{ int min=0; int max=0;
 srand(time(NULL));
   int n = 0; int sum = 0;
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10;
            cout << a[i][j] << " "; // Вывести элементы на консольку
        }
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
    }
    // Считаем минимальный и максимальный
    min = a[0][0];// берем самый первый элемент массива и считаем, что он минимальный.
    max = a[0][0];// и он же максимальный. 
  int imax=0, imin=0, jmax=0, jmin=0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
			if (a[i][j] < min) {min = a[i][j], imin=i, jmin=j;}
			if (a[i][j] > max) {max = a[i][j], imax=i, jmax=j;}
	}
    }
    cout << "min = " << min << endl << "max = " << max << endl;
	cout << "imin = " << imin << endl << "imax = " << imax << endl;
	cout << "jmin = " << jmin << endl << "jmax = " << max << endl;
    // Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[]a[i]; // Удаляем каждый элемент
    }
    delete [] a; // А потом массив
    _getch();
	return 0;
}
Михаид вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доработать программу, заполнить массив случайными значениями . serg.malkow2014 Помощь студентам 2 27.11.2013 01:41
Перестановка строк в двухмерном массиве GoldSieg Паскаль, Turbo Pascal, PascalABC.NET 4 10.11.2011 13:38
заполнить массив случайными вещественными числами (C#) _RaWeN_ Общие вопросы C/C++ 2 14.03.2011 19:02
Строки в Двухмерном массиве Pascal program123 Помощь студентам 3 05.06.2009 22:21