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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2017, 01:04   #11
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

1) Уважаемый, у тебя 20 элементов в массиве, а не 10-ть.
2) а если пользователь введёт чётное число?
Нужна защита от этого?

3) Пробелы " " не симметрично выводит (все слева отображает).
Я вроде поправил:


2.jpg


4) При определённых комбинациях, например 5,7,9,1,3,0, не правильно находит максимум (и картинка некрасивая).
Ты что-то накосячил здесь. Проверь логику этого блока программы ещё раз.
А зачем ты, при поиске максимума, сравниваешь "a[i]" с "a[i+1]", когда можно было бы "a[i]" с "s_b_chislo" - это бы уменьшило кол-во ошибок (по невнимательности).
Типа такого:
Код:
s_b_chislo=0;

if (s_b_chislo < chisla[0]){
    s_b_chislo = chisla[0];
}
if (s_b_chislo < chisla[1]){
    s_b_chislo = chisla[1];
}
.........
.........

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

а можно ето в цыкл
Андрей Ш++ вне форума Ответить с цитированием
Старый 16.11.2017, 15:33   #13
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

я почти зделал осталось одцентровать
Андрей Ш++ вне форума Ответить с цитированием
Старый 16.11.2017, 15:33   #14
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

#include <iostream>

using namespace std;

int main()
{
int a[20];
int b;
int c=0;
int d=0;
int j=0;
int h=0;
int y=0;
while (c<19){
a[c]=0;
c++;
}
c=0;
while (b>0){
cin >>b;
a[c]=b;
c++;
}
c=0;
while (c<19){
if (d<a[j]){
d=a[j];
}
j++;
c++;
}
c=0;
j=0;
while (c<19){
while (h<d-a[j]){
cout <<" ";
h++;
}
while(y<a[j]){
cout <<"*";
y++;
}
cout <<endl;
j++;
c++;
h=0;
y=0;
}
}
Андрей Ш++ вне форума Ответить с цитированием
Старый 16.11.2017, 22:05   #15
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Вот мой вариант:
Код:
#include <iostream>
using namespace std;

int main()
{
	int a[20];
	int c;

	// ввод массива "а"
	c = 0;
	cout << "Vvedite a:\n";
	while (c < 20)
	{
		cout << "a[" << c + 1 << "]= ";
		cin >> a[c];

		if (a[c] == 0)
		{
			break;
		}
		if (a[c] % 2 == 0) 
		{
			cout << "Error chetnoe chislo!" << "\n";
			cin >> c; //чтобы консоль быстро не закрывалась
			return 0;
		}

		c++;
	}
	cout << "\n";

	if (c != 0)
	{
		// поиск максимума
		int max = a[0];
		c = 0;
		while (a[c] != 0)
		{
			if (max < a[c])
			{
				max = a[c];
			}
			c++;
		}

		// вывод на экран
		c = 0;
		while (a[c] != 0)
		{
			int brobel = 0;
			while (brobel < (max - a[c]) / 2)
			{
				cout << " ";
				brobel++;
			}

			int zvesda = 0;
			while (zvesda < a[c])
			{
				cout << "*";
				zvesda++;
			}
			cout << endl;
			c++;
		}
	}
	else
	{
		cout << "Error n==0!" << "\n";
	}

	cin >> c; //чтобы консоль быстро не закрывалась
	return 0;
}

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

#include <iostream>

using namespace std;

int main()
{
int a[20];
int b;
int c=0;
int d=0;
int h=0;
int y=0;
while (c<19){
a[c]=0;
c++;
}
c=0;
while (b>0){
cin >>b;
a[c]=b;
c++;
}
c=0;
while (c<19){
if (d<a[c]){
d=a[c];
}
c++;
}
c=0;
while (c<19){
if (a[c]>0){
while (h<(d-a[c])/2){
cout <<" ";
h++;
}
}
h=0;
if (a[c]>0){
while(h<a[c]){
cout <<"*";
h++;
}
cout <<endl;
}
c++;
h=0;
}
}
вот ето я уже зделал
всем спасибо особено юре
Андрей Ш++ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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