Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2012, 21:18   #1
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию Нарисовать квадрат

Стоит задача считать размер стороны квадрата и нарисовать его звездочками. Получилось все кроме одной стороны, кто может подсказать, как доделать? Спасибо.

Код:
#include <iostream>
#include <conio.h>
#include <clocale>

using namespace std;

int main()
{
	setlocale (LC_CTYPE,"Russian");
	int n = 0;
	cout << "Введите сторону квадрата: ";
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cout << "*";
	}
	for (int i = 0; i < n; i++)
	{
		cout << "*" << endl;
	}
	for (int i = n; i >= 0; i--)
	{
		cout << "*";
	}
	_getch();
	return 0;
}
Dima-War вне форума Ответить с цитированием
Старый 02.10.2012, 22:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, подобные задачи были на форуме.

во-вторых, я не знаю С/С++, посему прошу меня извинить, но я бы предложил такой примерно вариант:
Код:
	for (int i = 0; i < n; i++)
	{
		cout << "*";
	}
	for (int i = 0; i < n; i++)
	{
	    cout << "*";  // левая стенка
                  for (int j = 1; j < n-1; j++)
                    {
                        cout << " ";
                     }
                  cout << "*" << endl; // правая стенка
	}
	for (int i = n; i >= 0; i--)
	{
		cout << "*";
	}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.10.2012, 11:39   #3
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Немного исправил и дополнил ответ Сергея. По сути верно. Только не могу понять, откуда берется звездочка в конце верхней строки.

Код:
#include <iostream>
#include <locale>

using namespace std;

int main()
{
	setlocale (LC_CTYPE,"Russian");
	int n = 0;
	cout << "Введите сторону квадрата: ";
	cin >> n;
for (int i = 0; i < n-1; i++)
		cout << "*"; // верхняя стенка

	for (int i = 0; i < n-1; i++)
	{
	    cout << "*";  // левая стенка

		for (int j = 1; j < n-1; j++)
			cout << " ";

                  cout << "*" << endl; // правая стенка
	}
	for (int i = n; i > 0; i--)
		cout << "*"; // нижняя стенка

		cout << endl;
}
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 04.10.2012, 11:51   #4
MadHamster
Пользователь
 
Аватар для MadHamster
 
Регистрация: 13.01.2011
Сообщений: 28
По умолчанию

Код:
for (int i = 0; i < n; i++)
       cout << "*"; // верхняя стенка
cout << endl;
Так правильно будет.
Цитата:
Сообщение от three_cats Посмотреть сообщение
Только не могу понять, откуда берется звездочка в конце верхней строки.
У вас правая и левая стенки начинают рисоваться в верхней стенке.
MadHamster вне форума Ответить с цитированием
Старый 04.10.2012, 12:09   #5
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Поправил Рабочий пример.

Код:
#include <iostream>
#include <locale>

using namespace std;

int main()
{
	setlocale (LC_CTYPE,"Russian");
	int n = 0;
	cout << "Введите сторону квадрата: ";
	cin >> n;
for (int i = 0; i < n; i++)
		cout << "*"; // верхняя стенка
		cout << endl;
	for (int i = 1; i < n-1; i++)
	{
	    cout << "*";  // левая стенка
		for (int i = 1; i < n-1; i++)
			cout << " ";

                  cout << "*" << endl; // правая стенка
	}
	for (int i = n; i > 0; i--)
		cout << "*"; // нижняя стенка
		cout << endl;
}
MadHamster, не успел Вы оказались быстрее
Никто

мой блог
three_cats вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как нарисовать квадрат по клику мыши? dekuk C# (си шарп) 3 05.07.2012 15:50
Нарисовать квадрат Dima-War Общие вопросы C/C++ 6 19.03.2012 22:50
Нарисовать квадрат! SwiP Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 02.02.2011 19:23
нарисовать квадрат с длиной стороны 100 пикселей, используя процедуру linerel(x,y:integer) Кася_ Помощь студентам 6 23.02.2009 19:13