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

Упростить код

28.02.2014, 11:15. Показов 856. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    size_t rowsCount;
    cout << "N: ";
    cin >> rowsCount;
 
    size_t colsCount = 3;
    int **matrix = new int *[rowsCount];
    for (size_t i = 0; i < rowsCount; i++) {
        *(matrix + i) = new int [colsCount];
        for (size_t j = 0; j < colsCount; j++) {
            size_t currentNumber = 1;
            cout << setw(5) << (*(*(matrix + i) + j) = currentNumber++);
        }
        (colsCount ? (cout << endl, colsCount--) : (colsCount = 3, i--));
    }
    
    for (size_t i = 0; i < rowsCount; i++) {
        delete [] *(matrix + i);
    }
    delete [] matrix;
    matrix = nullptr;
 
    system("pause");
    return 0;
}
Как можно упросить код до самого простого? Чтоб прям вообще все элементарно было, не понимаю )
Допустим вот эти строчки как упросить можно?
C++
1
2
3
   cout << setw(5) << (*(*(matrix + i) + j) = currentNumber++);
        }
        (colsCount ? (cout << endl, colsCount--) : (colsCount = 3, i--));
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2014, 11:15
Ответы с готовыми решениями:

Упростить код
Разработать рекурсивную функцию , возвращающую значение : для перевода числа из двоичной системы счисления в десятичную; Как упростить...

Упростить код
Как упростить вот такой код? Спасибо за внимание. #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { ...

Упростить код
Создавал раннее тему с таковой задачей:Нужен код для шифрования русскоязычного текста методом простой подстановки(каждой букве алфавита...

11
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
28.02.2014, 11:18
Можно убрать динамические массивы, заменив их статическими. Можно заменить тернарные операторы на операторы выбора. убрать форматирование вывода. Прямо использовать тип int.
0
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 270
28.02.2014, 11:39  [ТС]
Динамические массивы как раз нужно оставить. Остальное можно поменять. Вот только кто-нибудь помог бы в осуществлении)
0
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 270
01.03.2014, 20:11  [ТС]
Подниму!
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
01.03.2014, 20:52
Цитата Сообщение от VitekSR Посмотреть сообщение
Как можно упросить код до самого простого? Чтоб прям вообще все элементарно было, не понимаю )
Допустим вот эти строчки как упросить можно?
C++
1
2
3
    cout << setw(5) << (*(*(matrix + i) + j) = currentNumber++);
}
(colsCount ? (cout << endl, colsCount--) : (colsCount = 3, i--));
Например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
        
    cout << setw(5) << (matrixp[i][j] = currentNumber++);
}
if(colsCount)
{
    cout << endl;
    colsCount--;
}
else
{
    colsCount = 3;
    i--;
}
1
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 270
02.03.2014, 20:14  [ТС]
Теперь программа не выводит числа так, как выводила до этого
Посмотрите еще раз, мб найдете ошибку у себя
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
02.03.2014, 20:34
Цитата Сообщение от VitekSR Посмотреть сообщение
Теперь программа не выводит числа так, как выводила до этого
Посмотрите еще раз, мб найдете ошибку у себя
У меня все эквивалентно выводит. Так что мяч на вашей стороне, правильно ли вы все вставили
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
02.03.2014, 21:24
А тут какая идея:
Цитата Сообщение от VitekSR Посмотреть сообщение
for (size_t j = 0; j < colsCount; j++) {
* * * * * * size_t currentNumber = 1;
* * * * * * cout << setw(5) << (*(*(matrix + i) + j) = currentNumber++);
* * * * }
это вообще смыла
C++
1
currentNumber++
не имеет, если
C++
1
size_t currentNumber = 1;
внутри for объявлен. либо
C++
1
size_t currentNumber = 1;
за пределы for вынести надо, либо с тем же успехом можно записать
C++
1
2
3
4
        for (size_t j = 0; j < colsCount; j++) {
 
            cout << setw(5) << (*(*(matrix + i) + j) = 1);
        }
Да простят меня эксперты, но мне как то привычнее это
C++
1
*(*(matrix + i) + j)
видеть так
C++
1
matrix[i][j]
1
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 270
03.03.2014, 05:34  [ТС]
C++
1
 (colsCount ? (cout << endl, colsCount--) : (colsCount = 3, i--));
а вот эту строчку как можно проще записать?
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
03.03.2014, 06:08
Цитата Сообщение от VitekSR Посмотреть сообщение
а вот эту строчку как можно проще записать?
Я же уже показывал как...
Если у тебя что-то не работает, то давай сюда целиком что исправил. У меня ошибок нет, я проверил.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.03.2014, 09:59
Цитата Сообщение от VitekSR Посмотреть сообщение
(*(*(matrix + i) + j)
Я не уверен, но можно попробовать записать так:
C++
1
matrix[i][j]
Добавлено через 1 минуту

Не по теме:

упс... Уже было

0
03.03.2014, 15:25

Не по теме:

Цитата Сообщение от Рыжий Лис Посмотреть сообщение
упс... Уже было
Аж два раза уже.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2014, 15:25
Помогаю со студенческими работами здесь

Упростить код
доброго времени суток, я совсем новичок в С++ (да и в программировании) сейчас учусь по Страуструпу, и возникла даже не то что проблема,...

Упростить код
Имеется код, как можно сделать что бы подщёт шел не с аа а с 0 // 400.cpp: определяет точку входа для консольного приложения. // ...

Упростить код
Добрый вечер! Есть задача: дан вещественный массив, определить номер столбца с наибольшим количеством положительных элементов. После...

Упростить код
#include&lt;iostream&gt; using namespace std; int main() { int a, b, c, d = 0, g = 0, f = 0; cin &gt;&gt; a &gt;&gt; b &gt;&gt; c; if (a &gt; 0) d++; ...

упростить код
есть решена задача, надо упростить, из того перебора в инструкции switch() на enum ( перечисленный тип, мб через рандом но чет не выходит...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru