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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2016, 19:59   #1
JuliaStar
 
Регистрация: 01.04.2016
Сообщений: 4
Вопрос Программирование с использованием динамических матриц и функций

Подскажите, верно ли??

Условие:
C++. Получить из матрицы целых чисел массив Х, который представляет собой строку матрицы, сумма элементов которой наименьшая. В данной строке элементы сдвинуты циклическим сдвигом на 2 позиции влево.
Тип формирования элементов массива - Случайным образом.
Тип организации работы с динами-ческой памятью - Одиночный указатель.

Программа:

Код:
#include <iostream>
#include <iomanip>
 
int main()
{
    srand(time(0));
    
    int H, W, index = 0;
    float min_sum = 0;
    std::cout << "Type H: "; std::cin >> H;
    std::cout << "Type W: "; std::cin >> W;
    std::cout << std::endl;
    float** M = new float*[H];
    for(int i = 0; i < H; i++)
        M[i] = new float[W];
    
    float* X = new float[W];
    
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
             M[i][j] = float(rand() % 1000 - rand() % 1000) / (rand() % 50 + 1);
             std::cout.fixed;
             std::cout << std::setprecision(3) << std::setw(7) << M[i][j];
        }
        std::cout << "\n\n";
    }
    
    for(int i = 0; i < W; i++)
        min_sum += M[0][i];
    
    for(int i = 0; i < H; i++)
    {
        float temp = 0;
        for(int j = 0; j < W; j++)
             temp += M[i][j];
        if(min_sum > temp)
        {
            min_sum = temp;
            index = i;
        }
    }
    
    for(int i = 0; i < W; i++)
        X[(i + 2) % W] = M[index][i];
    
    std::string line(W * 7, '=');
    std::cout << line << "\n\n";
    for(int i = 0; i < W; i++)
    {
        std::cout.fixed;
        std::cout << std::setprecision(3) << std::setw(7) << X[i];
    }
    std::cout << "\n\n";
    
    for(int i = 0; i < H; i++)
        delete [] M[i];
    delete [] M, X;
    
    system("pause");
    return 0;
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 07.04.2016 в 20:05.
JuliaStar вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование с использованием функций. Язуджи Помощь студентам 1 22.12.2013 23:24
Программирование с использованием динамических массивов MISTER_88 Помощь студентам 0 14.02.2012 15:41
ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ФУНКЦИЙ Dmitry_Web Помощь студентам 2 09.12.2011 22:56
Программирование с использованием динамических двумерных массивов 5298996 Помощь студентам 12 21.11.2010 12:15
программа с использованием динамических матриц fatefighter Помощь студентам 1 19.10.2010 08:27