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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
#1

Заполнение двумерного массива змейкой - C++

27.11.2012, 22:14. Просмотров 2280. Ответов 12
Метки нет (Все метки)

Добрый вечер, помогите пожалуйста, я написал код заполнения матрицы змейкой начиная от левого верхнего угла, но выдает ошибку Stack Overflow, подскажите в чем ошибка, вот сам код, конечно код мягко говоря ужасный, но не знаю как иначе сделать:

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
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int filling(int mas[][9], int x, int y);
 
int main()
{
    int result;
    int mas[9][9] = {0};
 
    result = filling(mas, 0, 8);
 
    for(int i = 0; i < 9; i++)
    {
        for (int j = 0; j < 9; j++)
        {
            printf("%4d", mas[i][j]);
        }
        printf("\n");
    }
 
    return 0;
}
 
int filling(int mas[][9], int x, int y)
{
    static int m = 1;
 
    if (m == 81)
        return m;
 
    for(int i = x; i <= y; i++)
    {
        mas[x][i] = m;
        m++;
    }
    for (int i = x; i <= y; i++)
    {
        mas[i][y] = m;
        m++;
    }
    for (int i = y; i >= x; i--)
    {
        mas[y][i] = m;
        m++;
    }
    for (int i = y; i > x; i--)
    {
        mas[i][x] = m;
        m++;
    }
    x++;
    y--;
 
    return filling(mas, x, y);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12727 / 7187 / 802
Регистрация: 27.09.2012
Сообщений: 17,727
Записей в блоге: 2
Завершенные тесты: 1
27.11.2012, 22:19     Заполнение двумерного массива змейкой #2
функция filling вызывается бесконечно. m не будет равен 81. Сделайте, например, условие m>81

Добавлено через 37 секунд
И зачем Вы подключаете iostream, если им не пользуетесь?
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
27.11.2012, 22:31  [ТС]     Заполнение двумерного массива змейкой #3
Спасибо большое, да просто в проекте в codeblocks он сам автоматом подключился, забыл удалить, а можно решить задачу как нибудь иначе? попроще
Croessmah
Модератор
Эксперт CЭксперт С++
12727 / 7187 / 802
Регистрация: 27.09.2012
Сообщений: 17,727
Записей в блоге: 2
Завершенные тесты: 1
27.11.2012, 22:34     Заполнение двумерного массива змейкой #4
Как заполнить массив? Рисунок или схему, ибо "змейка" мне ни о чем не говорит
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
27.11.2012, 22:37  [ТС]     Заполнение двумерного массива змейкой #5
и вправду а как сюда картинку вставить ?
Croessmah
Модератор
Эксперт CЭксперт С++
12727 / 7187 / 802
Регистрация: 27.09.2012
Сообщений: 17,727
Записей в блоге: 2
Завершенные тесты: 1
27.11.2012, 22:40     Заполнение двумерного массива змейкой #6
Расширенный режим -> вложения (скребка)

Добавлено через 28 секунд
ну а там разберетесь как его потом в сообщение вставить
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
27.11.2012, 22:44  [ТС]     Заполнение двумерного массива змейкой #7
Вот кажется
Миниатюры
Заполнение двумерного массива змейкой  
Croessmah
Модератор
Эксперт CЭксперт С++
12727 / 7187 / 802
Регистрация: 27.09.2012
Сообщений: 17,727
Записей в блоге: 2
Завершенные тесты: 1
27.11.2012, 23:09     Заполнение двумерного массива змейкой #8
Цитата Сообщение от Kreativ Посмотреть сообщение
Вот кажется
Заполнение матрицы спиралью
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
27.11.2012, 23:13  [ТС]     Заполнение двумерного массива змейкой #9
мне кажется, или у меня код скажем так не эффективный?
Croessmah
Модератор
Эксперт CЭксперт С++
12727 / 7187 / 802
Регистрация: 27.09.2012
Сообщений: 17,727
Записей в блоге: 2
Завершенные тесты: 1
27.11.2012, 23:17     Заполнение двумерного массива змейкой #10
Название: Безымянный.jpg
Просмотров: 668

Размер: 22.2 Кб
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
27.11.2012, 23:19  [ТС]     Заполнение двумерного массива змейкой #11
не, я исправил там немного, работает нормально, просто мне как то не нравятся 4 цикла в рекурсии ))
Croessmah
Модератор
Эксперт CЭксперт С++
12727 / 7187 / 802
Регистрация: 27.09.2012
Сообщений: 17,727
Записей в блоге: 2
Завершенные тесты: 1
27.11.2012, 23:22     Заполнение двумерного массива змейкой #12
Цитата Сообщение от Kreativ Посмотреть сообщение
не, я исправил там немного, работает нормально, просто мне как то не нравятся 4 цикла в рекурсии ))
Пройдите по ссылке и посмотрите, как эта задача решена там и сделайте выводы. Разберитесь как работает тот код и напишите свой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 23:25     Заполнение двумерного массива змейкой
Еще ссылки по теме:

заполнение двумерного массива C++
Заполнение массива змейкой по диагонали C++
C++ Заполнение двумерного массива
Заполнение двумерного массива C++
Заполнение двумерного массива C++

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

Или воспользуйтесь поиском по форуму:
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
27.11.2012, 23:25  [ТС]     Заполнение двумерного массива змейкой #13
не могли бы вы посмотреть еще кое что Выделить первое слово из строки(работа с указателями)
Yandex
Объявления
27.11.2012, 23:25     Заполнение двумерного массива змейкой
Ответ Создать тему
Опции темы

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