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

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

Войти
Регистрация
Восстановить пароль
 
UnsKneD
алкокодер
154 / 150 / 11
Регистрация: 27.12.2012
Сообщений: 548
#1

Матрица порядка N (упростить/улучшить код) - C++

05.01.2013, 15:13. Просмотров 338. Ответов 2
Метки нет (Все метки)

Задание: Получить целочисленную квадратную матрицу порядка N
1 2 3 ... 3 2 1
0 1 2 ... 2 1 0
...
0 1 2 ... 2 1 0
1 2 3 ... 3 2 1
Можно ведь проще сделать, посоветуйте пожалуйста.
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
int A[7][7];
int N = 7;
 
int n = 2, m, k = 0;
if(N%2 == 0) m = N/2;
else m = N/2+1;
 
for(int i = 0; i<N/2; i++)
{
    for(int j = 0; j<N/2; j++)
    {
        if(i==j) A[i][j] = 1;
        if(i<j) A[i][j] = n++;
        if(i>j) A[i][j] = 0;
    }
    for(int j = N/2; j<N; j++)
    {
        if(i+j+1==N) A[i][j] = 1;
        if(i+j+1<N) A[i][j] = m--;
        if(i+j+1>N) A[i][j] = 0;
    }
    if(N%2 == 0) m = N/2-1-k;
    else m = N/2-k;
    n = 2; k++;
    
}
 
int nn = 2, mm = 2, l = 0;
for(int i = N/2; i<N; i++)
{
    
    for(int j = 0; j<N/2; j++)
    {
        if(i+j+1==N) A[i][j] = 1;
        if(i+j+1<N) A[i][j] = 0;
        if(i+j+1>N) A[i][j] = nn++;
    }
    for(int j = N/2; j<N; j++)
    {
        if(i==j) A[i][j] = 1;
        if(i<j) A[i][j] = 0;
        if(i>j) A[i][j] = mm--;
    }
    mm = 2+l; nn = 2; l++;
}
 
for(int i = 0; i<N; i++)
{
    for(int j = 0; j<N; j++)
    {
        cout << A[i][j] << " ";
    }
    cout << endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2013, 15:13     Матрица порядка N (упростить/улучшить код)
Посмотрите здесь:

Как улучшить код?! - C++
Написал код к заданию: Дан целочисленный массив размера N. Если он является перестановкой, то есть содержит все числа от 1 до N, то вывести...

Нужно улучшить код - C++
Нужно улучшить код. 1)Отсортировать таблицу(если ввести Hello World,то буква &quot;l&quot; должна быть на 1 месте так как она встречается 3...

Перегрузка функций - улучшить код - C++
Решил сделать перегрузку функций, что то не могу сделать лучше подскажите как можно сделать лучше или помогите здесь, вернуть...

Помогите улучшить простой код - C++
Задача: Из-за высокой цены бензина водители озабочены затратами топлива своих аытомобилей. Один водитель взял в рейс несколько емкостей...

Исправить код в методе рунге кутты 4 порядка ля системы ДУ 1 порядка - C++
Вот код для метода рунге кутты 4 порядка для систему ДУ 1 порядка. Вроде все верно, но ответ не правильный. В чем ошибка. Подскажите...

Как улучшить свой код и его структуру? - C++
Изучил основы С++, сейчас активно изучаю SFML, Qt и глядя на код других людей я замечаю что мой код заведомо отличается, (хотя по сути то...

Покритикуйте и помогите улучшить код моей игры - C++
Здравствуйте, недавно начал писать игру и собственно пишу потихоньку, но не в этом суть, просто я только сегодня понял, что мой код может...

Парсер математических выражений - можно ли оптимизировать и улучшить код - C++
Добрый день возник следующий вопрос, в программировании не сильно большой гуру пошел на собеседование , дали тестовое задание парсер...

Плохой калькулятор: как его сделать нормальным? (улучшить код) - C++
Как его сделать нормальным ? :cry: #include &lt;functional&gt; #include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;string&gt; #include...

Классы. Ввод данных о книге и их отображение (как улучшить код?) - C++
Изучаю классы. Сделал программку для класса card имеющего 2 метода - для введения данных о книге и их отображения. Подскажите как можно...

Как улучшить следующий код программы? Поиск всех простых чисел до 1000 - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; int main() { std::size_t size = 1000; bool *simpleArray = new bool (); ...

Описать структуру с именем TIMETABLE (найти и исправить ошибки в коде, улучшить код) - C++
Описать структуру с именем TIMETABLE, содержащий следующие поля: NAZV - название пункта назначения, NUMR - номер поезда, DATE - дата...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
154 / 150 / 11
Регистрация: 27.12.2012
Сообщений: 548
20.01.2013, 11:01  [ТС]     Матрица порядка N (упростить/улучшить код) #2
Ап.
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
20.01.2013, 11:13     Матрица порядка N (упростить/улучшить код) #3
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
#include <iostream>
 
 
int main() {
   std::size_t const N = 8;
   int matrix[N][N] = {0};
 
   for (std::size_t i = 0; i != (N + 1) / 2; ++i) {
      for (std::size_t j = i; j != (N + 1) / 2; ++j) {
         int value = j - i + 1;
         matrix[i][j] = value;
         matrix[N - i - 1][j] = value;
         matrix[i][N - j - 1] = value;
         matrix[N - i - 1][N - j - 1] = value;
      }
   }
 
   for (std::size_t i = 0; i != N; ++i) {
      for (std::size_t j = 0; j != N; ++j) {
         std::cout << matrix[i][j] << ' ';
      }
      std::cout << std::endl;
   }
}
http://ideone.com/o3R6i8
Ответ Создать тему
Опции темы

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