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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2009, 01:09   #1
termit0
 
Регистрация: 20.10.2009
Сообщений: 4
Радость Квадрат из звездочек

Помогите - вот решил написать программу, и оставил грамматическу ошибку. Консольная программа.
------------------------------------------
Код:
#include <iostream>
using namespace std;
int main ()
{
  cout  <<  "Please enter number: ";
  unsigned short int number; // число, из которого будет состоять квадрат.
  cin   >>  number;
  unsigned short int counter; // счетчик, работающий пока не равен введенному числу.
  unsigned short int loops = 1; // счетчик, вертикальный - работающий по тому же принципу.
  unsigned short int result=0;  // пробелы в квадрате.
  unsigned short int uniq=0;   //  счетчик выполняющий просчет выводимых звездочек.
  result = number - 2; // присвоить переменной нужное число пробелов в квадрате.
  while ( counter < number ) // программа работает пока цикл не станет равен введенному числу.
  {
    if ( ( loops == 1 ) || ( loops == number ) ) // Если вертикальный счетчик равен одному или введенному числу,
    { // то, пусть будет звездочек столько
      while ( uniq < number ) // пока просчетный счетчик меньше вводимого числа.
      {
        cout << "* ";
        uniq++;
      }
      uniq = 0; // присвоить просчетному счетчику значение нуль и ждать следующего события.
    }
    if  ( ( loops != 1 ) && ( loops < number ) ) // если вертикальный счетчик не равен верхней и нижней линии квадрата,
    {
      cout << "* "; // вывести одну звездочку и установить
      while ( uniq < result ) // пробелы нужного количества.
      {
        cout << "  "; // пробелы
      }
      uniq = 0;       // пусть ждет очередного события
        cout << "* "; // вывести опять же звездочку
    }
    counter++; // увеличить на один
    loops++;    // увеличить на один
    cout << "\n"; // поставить enter.
  }
  return 0;
}

Последний раз редактировалось Sazary; 20.10.2009 в 02:00.
termit0 вне форума Ответить с цитированием
Старый 20.10.2009, 01:14   #2
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Цитата:
вот решил написать программу, и оставил грамматическу ошибку.
Это тест на внимательность чтоли? Зачем ошибку оставил?
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 20.10.2009, 01:17   #3
termit0
 
Регистрация: 20.10.2009
Сообщений: 4
По умолчанию

Ну не спроста я! Просмотрел много раз, но не увидел ее, попробуйте и вы!
termit0 вне форума Ответить с цитированием
Старый 20.10.2009, 01:51   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Их тут и не одна, а штуки три будет.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 20.10.2009, 13:53   #5
wmkross
 
Аватар для wmkross
 
Регистрация: 24.09.2008
Сообщений: 7
По умолчанию

У тебя не только грамматические ошибки , но и логические:
1. Где начальное значение счетчика
Цитата:
while ( counter < number )
2. Да, точно!!! loops можно и не трогать!

3. В данном цикле чего-то не хватает - "ИЗМЕНЕНИЕ СЧЕТЧИКА"
Цитата:
while ( uniq < result ) // пробелы нужного количества.
{
cout << " "; // пробелы
}


Остальное (если сам делал) поймешь!!!
Хмм... Читаю книги, учу С++

Последний раз редактировалось wmkross; 21.10.2009 в 13:03.
wmkross вне форума Ответить с цитированием
Старый 20.10.2009, 23:24   #6
termit0
 
Регистрация: 20.10.2009
Сообщений: 4
Радость

Присвоил счетчику значение равное нулю.
Цитата:
unsigned short int counter=0;
----------------------------------------------
Дописал увеличение счетчика
Цитата:
while ( uniq < result ) // пробелы нужного количества.
{
cout << " "; // пробелы
uniq++;
А вот loops лучше не трогать. И так нормально работает!
В самом конце инкремент стоит с самого начала!
Цитата:
}
counter++; // увеличить на один
loops++; // увеличить на один
cout << "\n"; // поставить enter.
}
return 0;
}
termit0 вне форума Ответить с цитированием
Старый 20.10.2009, 23:34   #7
termit0
 
Регистрация: 20.10.2009
Сообщений: 4
По умолчанию

Тему можно считать закрытой!
termit0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Магический квадрат Гаджи Помощь студентам 5 24.10.2009 09:46
Черный квадрат Дініс Свободное общение 9 07.09.2009 21:43
в текстовом документе нарисовать элипс состоящий из звездочек *, по заданному радиусу. autopsist Помощь студентам 6 22.12.2008 13:07
Магический квадрат Anarx Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2008 13:07
квадрат в TEdit wawan93 Общие вопросы Delphi 4 04.12.2008 12:33