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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
#1

Рисование квадратов символами - C++

08.07.2010, 12:29. Просмотров 1100. Ответов 5
Метки нет (Все метки)

Где-то тут недавно видел задачу, которая из разных символов рисует квадраты с вписанными квадратами по приницпу
C++
1
2
3
4
5
6
7
8
9
111111111
1_______1
1_11111_1
1_1___1_1
1_1_1_1_1
1_1___1_1
1_11111_1
1_______1
111111111
Захотелось сделать и самому, вроде бы задача не сложная, но на С++ я недавно, так что все равно ничего не вышло. Компилятор ничего не находит, но при запуске программы просто закрывает приложение от ошибки. Прошу, не пишите свой код программы, это мне ни капли не поможет, найдите лучше ошибки в моем. Вот собственно и он:
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
#include "stdafx.h"
#include <iostream> 
#include <stdlib.h>
using namespace std;
void draw(int **a,int lft,int rght, int max)
{
    int i,j;
    if (rght<0)
        for (i=0; i<max; i++)
         {
         for (j=0; j<max; j++)
             cout << a[i][j] << " ";
         cout << endl;
         }
    else
    {
    for (i=lft-1; i<rght; i++)
        for (j=lft-1; j<rght; j++)
            a[i][j]=1;
    for (i=lft; i<rght-1; i++)
        for (j=lft; j<rght-1; j++)
            a[i][j]=0;
    draw(a,lft+2,rght-2,max);
    }
}
 
int main()
{
    int numb,i,j;
           cout << "input max size" << endl;
    cin >> numb;
    int **a;
    draw(a,numb,numb,numb);
    cout << endl;
    cin.get();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2010, 12:29     Рисование квадратов символами
Посмотрите здесь:

рисование в консоли (не символами) - C++
Есть ли у кого пример рисования в консоли не символами. Буду очень признателен :-|

Проблемы с русскими символами - C++
#include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;locale.h&gt; int main() { setlocale(LC_ALL, &quot;Russian&quot;); char...

regex с русскими символами - C++
Привет всем! что надо сделать чтобы работала регулярное выражение с русскими буквами ? регулярные выражение пользуюсь из boost...использую...

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

Шифрование инверсными символами - C++
Добрый день, уважаемое сообщество! Код ниже - реализация шифрования инверсными символами (по дополнению 255). Т.е. замена символа...

Вывод рисунков символами - C++
Здравствуйте. Возник вопрос: как расположить выведенные цифры в строку? #include &lt;iostream&gt; using namespace std; int main() {...

Дополнить строку символами - C++
Всем доброго времени суток. Такая задача: Вводим строку с клавиатуры (строку следует pассматpивать как символьную массивы (array of char),...

Работа с символами в строке - C++
Есть строка в 160 символов, мне надо найти в этом тексте слова состоящие из 3 символов. If (strlen(str1)==3) // определяем слова...

Ошибки с неразрешенными внешними символами - C++
1&gt;new_menu.obj : error LNK2019: ссылка на неразрешенный внешний символ &quot;void __cdecl setPassword(char *)&quot; (?setPassword@@YAXPAD@Z) в...

Заполнить массив случайными символами - C++
Нужно заполнить массив случайными символами(буквами и числами). Как это можно сделать с помощью rand?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
08.07.2010, 12:36     Рисование квадратов символами #2
Может быть, проблема в том, что ты используешь неинициализированный указатель? Перед тем, как передавать его в функцию, нужно было бы выделить для него память.
Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
08.07.2010, 12:57  [ТС]     Рисование квадратов символами #3
можно по-подробнее?


а еще в консоли перед тем как выкидывает пишет
object reference not set to an instance of an object
и указывает на строки 21 и 38
что это означает ?
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
08.07.2010, 13:17     Рисование квадратов символами #4
Перед 33 строкой напиши:
C++
1
2
3
a=new int*[numb];
for(size_t k=0; k<numb; ++k)
    a[k]=new int[numb];
А после 33:
C++
1
2
3
for(size_t k=0; k<numb; ++k)
    delete[] a[k];
delete[] a;
Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
08.07.2010, 13:27  [ТС]     Рисование квадратов символами #5
Спасибо, теперь хоть не выбивает ошибку. Но программа все равно не работает, наверное алгоритм неправильный, буду думать.

Все, теперь и в программе ошибку нашел логическую. Вызывать нужно не draw(a,numb,numb,numb);, а draw(a,1,numb,numb);
Все работает, огромное спасибо
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
08.07.2010, 13:30     Рисование квадратов символами #6
Попробуй пройти программу в пошаговом режиме. Хотя отлаживать рекурсивную программу - тот еще геморрой...
Yandex
Объявления
08.07.2010, 13:30     Рисование квадратов символами
Ответ Создать тему
Опции темы

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