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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2010, 16:11   #1
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию Печать квадрата из звездочек

Я написал программу, которая печатает из звездочек квадрат с заданной стороной. Например, квадрат со стороной 6 будет выглядеть так:
******
*____*
*____*
*____*
*____*
******
Код такой:
Код:
#include<iostream>
using std::cout;
using std::cin;
 
#include<windows>
 
void rustext(char str[])
{
   char buffer[1024];
   CharToOem(str, buffer);
   cout << buffer;
}
 
void probel(int kolvoProbelov = 0)
{
   for (int j = 0; j < kolvoProbelov; j++)
   {
      cout << " ";
   }
}
 
int main()
{
   int storonaKvadrata = 0; // длина стороны квадрата
 
   rustext("Введите длину стороны квадрата (целое число, от 1 до 20)\n\r");
   cin >> storonaKvadrata;
 
   if (storonaKvadrata <= 20)
   {
      for (int i = 0; i < storonaKvadrata; i++)
      {
         cout << "*";
      }
 
      cout << "\n\r";
 
      for (int k = 0; k < (storonaKvadrata - 2); k++)
      {
         cout << "*";
         probel(storonaKvadrata - 2);
         cout << "*\n\r";
      }
 
      for (int i = 0; i < storonaKvadrata; i++)
      {
         cout << "*";
      }
 
      cout << "\n\r";
   }
   else
   {
      rustext("Введенное число превышает 20.\n\r");
   }
 
   system("pause");
   return 0;
}
Вопрос: есть ли лучшее решение задачи?
fs444 вне форума Ответить с цитированием
Старый 21.01.2010, 16:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Могу предложить короче:
Код:
#include <iostream.h>
...
{
 int w=10,h=10;
 for(int i=0;i<w;i++){cout<<'*';};
 for(int i=1;i<h;i++){
  cout<<"\n*";
  for(int k=0;k<(w-2);k++){cout<<'-';}
  cout<<"*";
 }
 cout<<'\n';
 for(int i=0;i<w;i++){cout<<'*';};
 cin.get();
	return 0;
}
I'm learning to live...

Последний раз редактировалось Stilet; 21.01.2010 в 16:26.
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 14:51   #3
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию

Спасибо, буду разбираться =)
fs444 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование квадрата KocT9 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 22.10.2014 11:58
Рисование квадрата. Работа на Canvas Файзулка Мультимедиа в Delphi 8 26.02.2010 14:34
Квадрат из звездочек termit0 Общие вопросы C/C++ 6 20.10.2009 23:34
Рисование квадрата, работа на canvas lubov_morkov Помощь студентам 2 02.06.2009 13:01
в текстовом документе нарисовать элипс состоящий из звездочек *, по заданному радиусу. autopsist Помощь студентам 6 22.12.2008 13:07