Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 4

Как уменьшить код?

22.11.2019, 21:06. Показов 1633. Ответов 1

Студворк — интернет-сервис помощи студентам
Есть задание:
Информация о доходах М фирм за N месяцев, заданная в виде таблицы
Кликните здесь для просмотра всего текста
Определить наибольшую прибыль среди всех фирм за все месяцы и вывести его, указав номер фирмы и номер месяца.
Есть такой код:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Rus");
 
    const int ROW = 3;
    const int COL = 3;
 
    int arr[ROW][COL]{
        {1349,940,1500},
        {450,1578,1024},
        {768,988,1433}
    };
 
    int sum0 = 0;
    int max0 = arr[0][0];
    int month0 = 0;
 
    int sum1 = 0;
    int max1 = arr[1][0];
    int month1 = 0;
 
    int sum2 = 0;
    int max2 = arr[2][0];
    int month2 = 0;
 
 
    for (int row = 0; row < ROW; row++)
    {
        for (int col = 0; col < COL; col++)
        {
            if (row == 0) {
                sum0 += arr[row][col];
 
                if (max0 < arr[row][col])
                {
                    max0 = arr[row][col];
                    month0 = 1 + col;
                }
            }
            else if (row == 1) {
                sum1 += arr[row][col];
 
                if (max1 < arr[row][col])
                {
                    max1 = arr[row][col];
                    month1 = 1 + col;
                }
            }
            else if (row == 2) {
                sum2 += arr[row][col];
 
                if (max2 < arr[row][col])
                {
                    max2 = arr[row][col];
                    month2 = 1 + col;
                }
            }
        }
 
    }
 
    if ((sum0 > sum1) && (sum0 > sum2)) {
        cout << "максимальная прибыль фирмы #1 = " << sum0 << endl << "максимальный был в " << month0 << " месяце = " << max0;
    }
    if ((sum1 > sum0) && (sum1 > sum2)) {
        cout << "максимальная прибыль фирмы #2 = " << sum1 << endl << "максимальный был в " << month1 << " месяце = " << max1;
    }
    if ((sum2 > sum0) && (sum2 > sum1)) {
        cout << "максимальная прибыль фирмы #3 = " << sum2 << endl << "максимальный был в " << month2 << " месяце = " << max2;
    }
    cout << endl;
}

Как можно этот код сделать меньшим?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2019, 21:06
Ответы с готовыми решениями:

Как уменьшить объем программы упростить код
Здравствуйте, вопрос такой, можно ли как то упростить данный код программы cделать меньшим по объему , суть её заключается в том что...

Уменьшить код
Можно как-то поменьше сделать? #include &lt;iostream&gt; #include &lt;ctime&gt; int compare(int Ch,int usernum1) { while(true) ...

Как уменьшить код
Сабж, код: &lt;div id=&quot;wrapper&quot;&gt; &lt;div id=&quot;galery&quot;&gt; &lt;img src=&quot;&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;&quot;...

1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.11.2019, 21:30
Лучший ответ Сообщение было отмечено AndriyD как решение

Решение

AndriyD, это обычная задача на нахождение максимума двумерного массива и его позиций:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int M, N;
    cout << "M="; cin >> M;
    cout << "N="; cin >> N;
    
      double **a = new double*[M], max=0.; 
    for (int i = 0; i < M; i++)
       a[i]=new double[N];
    
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
        a[i][j]=0.1*(rand()%999 + 1);
        if ((i==0 && j==0) || a[i][j]>max) max=a[i][j];
        cout << setw(4) << a[i][j] << "  ";
        }
        cout << "  Firm " << i+1 << "\n";   
    }
    cout << "max=" << max << "\n";
    
    for (int i = 0; i < M; i++)    
        for (int j = 0; j < N; j++)     
        if (a[i][j]==max) cout << "Firm: " << i+1 << "  month: " << j+1 << "\n";    
 
    for (int i = 0; i < M; i++)
    delete[]a[i];
    delete[]a;
 
system("pause");
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2019, 21:30
Помогаю со студенческими работами здесь

Как уменьшить код?
Здравствуйте, написал код. Но меня смущает 3 запроса к БД. Как его можно сделать короче? &lt;? ob_start(); $sql= &quot;SELECT * FROM...

Матрица . Как уменьшить код
&lt;?php $base_numbers = array(1, 3, 10, 2, 5); $increment_matrix = array(); $summ = 0; foreach ($base_numbers as...

Как можно уменьшить код скрипта?
Есть скрипт: &lt;html&gt; &lt;head&gt; &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://freebit.clan.su/tizer.css&quot; /&gt; &lt;/head&gt; &lt;body&gt; ...

Движение танка. Как уменьшить код?
Задача: Танк в компьютерной игре может двигаться в одном из четырех направлений, обозначим их числами: 1-север, 2 - восток, 3 - юг, 4 -...

Навигация по сайту. Как оптимизировать и уменьшить код
Придумываю навигацию по сайту. Вот что вышло, как уменьшить может в массив засунуть кто подскажет? &lt;? echo '&lt;a...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru