Математика на Решебник.Ру. Минорский, Берман, Демидович
:: Главная страница | Решение задач: высшая математика, эконометрика, физика ::
Навигация

Программирование на Решебник.Ру / Пример решения задачи на C++

Пример решения задачи на C++

 

Задача

Динамически создать массив (10;6) и напечатать его элементы. Найти наименьшие элементы каждой строки и переместить их в массив A. Вывод наименьшего элемента строки матрицы оформить в виде подпрограммы.

Решение


#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <iomanip>
#include <windows.h>

void display(double **data, const int m, int n);
void de_allocate(double **data, int m, int n);
void minar(double **data, double *out, int m, int n);
void displaysingle(double *data, int m, int n);
char* DosStr(char* src);

int main()
{
    double **data;
    double *out;
    int m = 10;
    int n = 6;

    srand(time(NULL));

    try
    {
        data = new double*[m];
        for (int j = 0; j < m; j++)
            data[j] = new double[n];

    }
    catch (std::bad_alloc)
    {
        std::cout << "Could not allocate memory";
        exit(-1);
    }

    try
    {
        out = new double[m];
    }
    catch (std::bad_alloc)
    {
        std::cout << "Could not allocate memory";
        exit(-1);
    }


    for (int i = 0; i < m; i++)
        for (int j = 0; j < n; j++)
            data[i][j] = ((rand() % 198)-99)/10.0;

    display(data,m,n);
    minar(data,out,m,n);
    displaysingle(out,m,n);
    de_allocate(data,m,n);

    system("pause");

    return 0;
}

void display(double **data, int m, int n)
{
    std::cout << DosStr("Начальный массив:") << std::endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (data[i][j]>=0)
                std::cout << " ";
            std::cout << std::fixed << std::setprecision(1) << data[i][j] << " " <<"\t";
        }
        std::cout << std::endl;
    }
}

void displaysingle(double *data, int m, int n)
{
    std::cout << std::endl;
    std::cout << DosStr("Минимальные элементы в строках:") << std::endl;
    for (int i = 0; i < m; i++)
    {
        if (data[i]>=0)
            std::cout << " ";
        std::cout << std::fixed << std::setprecision(1) << data[i] << " " << std::endl;

    }
    std::cout << std::endl;
}

void minar(double **data, double *out, int m, int n)
{
    long double min;
    for (int i = 0; i < m; i++)
    {
        min = data[i][1];
        for (int j = 0; j < n; j++)
        {
            if (data[i][j]<min)
                min = data [i][j];
            out[i] = min;
        }
    }
}

void de_allocate(double **data, int m, int n)
{
    for (int i = 0; i < m;  i++)
        delete[] data[i];
    delete[] data;
}

char* DosStr(char* src)
{
    static char buf[1024];
    CharToOem(src, buf);
    return buf;
}



:: Рекомендуемая литература. Посетите интернет-магазины: Озон, Болеро

VIP Казань — Казань для достойных людей





:: Статистика


математика

Обмен электронных
валют онлайн

ONLINECHANGE

Проверить аттестат доверия
Яндекс цитирования

поставьте нашу кнопочку
у себя на сайте =)

 
:: Copyright © Решебник.Ru. :: Сделано в Казани
Официальные зеркала Решебник.Ру: reshebnik.org.ru reshkuz.org.ru используйте их, если основной сайт недоступен