Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 245
#1

Упростить код - C++

28.02.2014, 11:15. Просмотров 340. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2014, 11:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упростить код (C++):

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

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

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

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

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

Упростить код - C++
Добрый вечер. Такая задача. Исходные данные: вектор размерностью кратной 3 Выходные данные: вектор, получающийся из исходного...

11
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,533
Завершенные тесты: 1
28.02.2014, 11:18 #2
Можно убрать динамические массивы, заменив их статическими. Можно заменить тернарные операторы на операторы выбора. убрать форматирование вывода. Прямо использовать тип int.
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 245
28.02.2014, 11:39  [ТС] #3
Динамические массивы как раз нужно оставить. Остальное можно поменять. Вот только кто-нибудь помог бы в осуществлении)
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 245
01.03.2014, 20:11  [ТС] #4
Подниму!
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
01.03.2014, 20:52 #5
Цитата Сообщение от 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
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 245
02.03.2014, 20:14  [ТС] #6
Теперь программа не выводит числа так, как выводила до этого
Посмотрите еще раз, мб найдете ошибку у себя
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
02.03.2014, 20:34 #7
Цитата Сообщение от VitekSR Посмотреть сообщение
Теперь программа не выводит числа так, как выводила до этого
Посмотрите еще раз, мб найдете ошибку у себя
У меня все эквивалентно выводит. Так что мяч на вашей стороне, правильно ли вы все вставили
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
02.03.2014, 21:24 #8
А тут какая идея:
Цитата Сообщение от 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
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 245
03.03.2014, 05:34  [ТС] #9
C++
1
 (colsCount ? (cout << endl, colsCount--) : (colsCount = 3, i--));
а вот эту строчку как можно проще записать?
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
03.03.2014, 06:08 #10
Цитата Сообщение от VitekSR Посмотреть сообщение
а вот эту строчку как можно проще записать?
Я же уже показывал как...
Если у тебя что-то не работает, то давай сюда целиком что исправил. У меня ошибок нет, я проверил.
0
Рыжий Лис
Просто Лис
346 / 271 / 80
Регистрация: 17.05.2012
Сообщений: 1,116
Записей в блоге: 4
03.03.2014, 09:59 #11
Цитата Сообщение от VitekSR Посмотреть сообщение
(*(*(matrix + i) + j)
Я не уверен, но можно попробовать записать так:
C++
1
matrix[i][j]
Добавлено через 1 минуту

Не по теме:

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

0
DrOffset
03.03.2014, 15:25     Упростить код
  #12

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2014, 15:25
Привет! Вот еще темы с ответами:

Упростить код - C++
#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++; ...

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

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

Упростить код - C++
Добрый день, подскажите, можно ли упростить код (используя уровень знаний как в оригинале)? #include &lt;iostream&gt; #include &lt;time.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
12
03.03.2014, 15:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru