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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2017, 13:34   #1
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию С++ спрашивать числа и потом вывести отцентрованную фигурку

1
5
1
3
0 (ноль значит конец ввода… человек не хочет вводить больше)
--*
*****
--*
-***
(...будем считать, что человек будет вводить лишь нечётные числа, и их будет не больше 20)
и условие нужно зделать while a He for

Последний раз редактировалось Андрей Ш++; 12.11.2017 в 13:36.
Андрей Ш++ вне форума Ответить с цитированием
Старый 12.11.2017, 14:24   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И?

Покажите свои наработки, конкретные вопросы и т.п.
http://www.programmersforum.ru/announcement.php?f=31

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2017, 17:00   #3
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

наработок нет, я просто не имею придставленния как надо зделать

Последний раз редактировалось Андрей Ш++; 12.11.2017 в 17:03.
Андрей Ш++ вне форума Ответить с цитированием
Старый 13.11.2017, 04:12   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ну, если человек совсем нулевой, тогда здесь бабки за такое берут...
А если ты платить не хочешь, тогда нужно пахать...


Я не знаю твою ситуацию/уровень подготовки, но могу посоветовать - начни с ввода и заполнение массива целых чисел...
И сразу его вывода на экран, - чтобы удостоверится что всё ОК.

Если, для ввода данных в массив, тоже нужен только "while"
( т.е. цикл выполняется пока условие в скобках истина) тогда можешь использовать такую конструкцию:
Код:
        cin >> b;
	while (b != 0)
	{
           .......
           .......
	  cin >> b;
         }
Выполнять цикл пока не будет введён 0-ль.
Но проблема здесь такая: можно ввести больше 20-ти раз....

Наверно, нужен какой-то ограничитель кол-во ввода.

___________________________________ _______________

Меня беспокоит вот этот момент
(где рисуются нижнее подчёркивание):
1.jpg

Такое ощущение, что этот момент как-то зависит от максимального числа в массиве "int а[20]"
Например, при максимуме - 0 ль подчёркиваний..... Выведи, на каком-нибудь примере, закономерность этой ситуации.
Т.е. нужно узнать по какой формуле считается кол-во подчёркиваний.

Совет: постоянно проверяй, что компьютер рассчитал, -путём вывода на экран данных и их анализа...
Когда же удостоверишься, что всё ОК, тогда вывод можно удалить и перейти к следующий части.
Например, когда найдёшь максимум в массиве - выведи его на экран, чтобы убедиться что с ним всё ОК.
И только после этого продолжай...
___________________________________ _______________

Ну, а потом вывод рисунка... Если сразу не сможешь с циклом справиться, то (для начала) хоть сделай для 1-го элемента массива ("a[0]"):
Код:
1

--*
Если получилось - выведи следующий элемент...
Найди закономерность...
Запакуй всё в цикл "while".

___________________________________ ______________

p.s.: прочитай мой пост 5раз... С первого раза ты половину информации не воспримешь (по себе сужу).

Последний раз редактировалось ura_111; 13.11.2017 в 07:25.
ura_111 вне форума Ответить с цитированием
Старый 14.11.2017, 12:16   #5
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

я вроде не линивый и у меня есть придставление как его зделать
идея следующая -
1) решаете что самый первый элемент - самый большой
2) идёте по массиву, и смотрите на каждый элемент. Если он больше чем тот, что вы считаете самым большим - значит надо просто решить что самый большой - это вот этот новый встреченный элемент. И так до конца массива.а как сделать чтобы после введения 0 уже ничего не спрашивало - надо просто прервать работу цикла, сделать так чтобы его условие перестало работать

и такой цыкл мне не подходит

я полностю знаю цыкли

ну и изучаю масивы

Последний раз редактировалось BDA; 16.11.2017 в 02:38.
Андрей Ш++ вне форума Ответить с цитированием
Старый 14.11.2017, 22:57   #6
SerEngine
Форумчанин
 
Регистрация: 28.10.2017
Сообщений: 101
По умолчанию

Код:

int mass[] = {0};

cin>>b;
if(b>20 || b<0){

cout<<"Число больше 20 или меньше 0";

}
 else{ 
while (b >0){
  cin>>R;
 if(R >0){
   mass[b] = R;
       }
  b--;
}

заполнение массива при ваших условиях

Я могу взять и написать всё с нуля что-бы эта программа всё делала как надо

Последний раз редактировалось BDA; 16.11.2017 в 02:38.
SerEngine вне форума Ответить с цитированием
Старый 15.11.2017, 03:14   #7
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

1 сделайте массив целых
1.1 сделайте цикл, который заполняет этот массив
1.2 сделайте цикл, который печатает этот массив для проверки
когда будет правильно работать, переделайте для
2. нахождения максимального значения
3. сделайте цикл, который проходит по массиву и печатает фигуру
{ 1. вычислить количество лидирующих пробелов в строке фигуры
2. циклом вывести эти пробелы
3. циклом вывести соответствующее количество звёздочек
}

Если админы не против, напишу программу за 500 ру-руб.
Хватит оплатить ещё пять ошибок на моём сайте
СтудПом вне форума Ответить с цитированием
Старый 15.11.2017, 15:44   #8
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
Восклицание

#include <iostream>
using namespace std;

int main()
{
int a[10];
int b=1;
int c=0;
int d=0;
int z=0;
int k=0;
while (z<10){
a[z]=0;
z++;

}
while (b>0){
cin >>b;
a[c]=b;

c++;
}
if (a[1]>a[2]){
d=a[1];
}
if (a[1]<a[2]){
d=a[2];
}
if (a[2]<a[3]){
d=a[3];
}
if (a[4]>a[3]){
d=a[4];
}
if (a[5]>a[4]){
d=a[5];
}
if (a[6]>a[5]){
d=a[6];
}
if (a[7]>a[6]){
d=a[7];
}
if (a[8]>a[7]){
d=a[8];
}
if (a[9]>a[8]){
d=a[9];
}




}
вот мои наработки только осталось выводить звёздочки
Андрей Ш++ вне форума Ответить с цитированием
Старый 15.11.2017, 17:08   #9
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

#include <iostream>
using namespace std;

int main()
{
int chisla[10];
int vvodim=1;
int k_chisel=0;
int s_b_chislo=0;
int noliki=0;
int risunok=0;
int probeli=0;
int zvezda=0;
while (noliki<10){
chisla[noliki]=0;
noliki++;

}
while (vvodim>0){
cin >>vvodim;
chisla[k_chisel]=vvodim;

k_chisel++;
}
if (chisla[0]>chisla[1]){
s_b_chislo=chisla[1];
}
if (chisla[1]<chisla[2]){
s_b_chislo=chisla[1];
}
if (chisla[1]>chisla[2]){
s_b_chislo=chisla[1];
}
if (chisla[1]<chisla[2]){
s_b_chislo=chisla[2];
}
if (chisla[2]<chisla[3]){
s_b_chislo=chisla[3];
}
if (chisla[4]>chisla[3]){
s_b_chislo=chisla[4];
}
if (chisla[5]>chisla[4]){
s_b_chislo=chisla[5];
}
if (chisla[6]>chisla[5]){
s_b_chislo=chisla[6];
}
if (chisla[7]>chisla[6]){
s_b_chislo=chisla[7];
}
if (chisla[8]>chisla[7]){
s_b_chislo=chisla[8];
}
if (chisla[9]>chisla[8]){
s_b_chislo=chisla[9];
}
while (risunok<10){
while (probeli<s_b_chislo-chisla[risunok]){
cout <<" ";
probeli++;
}
while (zvezda<chisla[risunok]){
cout <<"*";
zvezda++;
}
cout<<endl;
probeli=0;
zvezda=0;
risunok++;
}
}
Но тут проблемка с последней строчкой
Андрей Ш++ вне форума Ответить с цитированием
Старый 15.11.2017, 17:09   #10
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

#include <iostream>
using namespace std;

int main()
{
int chisla[10];
int vvodim=1;
int k_chisel=0;
int s_b_chislo=0;
int noliki=0;
int risunok=0;
int probeli=0;
int zvezda=0;
while (noliki<10){
chisla[noliki]=0;
noliki++;

}
while (vvodim>0){
cin >>vvodim;
chisla[k_chisel]=vvodim;

k_chisel++;
}
if (chisla[0]>chisla[1]){
s_b_chislo=chisla[1];
}
if (chisla[1]<chisla[2]){
s_b_chislo=chisla[1];
}
if (chisla[1]>chisla[2]){
s_b_chislo=chisla[1];
}
if (chisla[1]<chisla[2]){
s_b_chislo=chisla[2];
}
if (chisla[2]<chisla[3]){
s_b_chislo=chisla[3];
}
if (chisla[4]>chisla[3]){
s_b_chislo=chisla[4];
}
if (chisla[5]>chisla[4]){
s_b_chislo=chisla[5];
}
if (chisla[6]>chisla[5]){
s_b_chislo=chisla[6];
}
if (chisla[7]>chisla[6]){
s_b_chislo=chisla[7];
}
if (chisla[8]>chisla[7]){
s_b_chislo=chisla[8];
}
if (chisla[9]>chisla[8]){
s_b_chislo=chisla[9];
}
while (risunok<10){
while (probeli<s_b_chislo-chisla[risunok]){
cout <<" ";
probeli++;
}
while (zvezda<chisla[risunok]){
cout <<"*";
zvezda++;
}
cout<<endl;
probeli=0;
zvezda=0;
risunok++;
}
}
Андрей Ш++ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Цикл While. Вывести целые числа от А до В, А вывести 1 раз, число А+1 вывести 2 раза и т.д. schibeki Помощь студентам 4 07.02.2014 09:17
Функция, сортирующая сначала нечетные числа в массиве по возрастанию, а потом четные по убыванию. yurets17 Помощь студентам 1 12.11.2013 19:01
Вывести числа, из диапазона от n до m у которых, количество единичных разрядов в двоичном представлении числа нечетно sheff123 Помощь студентам 8 05.01.2012 15:35
потом убрать из множества все числа фибоначчи J_o_h_n_ Паскаль, Turbo Pascal, PascalABC.NET 5 18.04.2009 21:25