Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 9
1

Используя массив сформировать фигуру на экране

27.02.2016, 14:02. Показов 1052. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
!Помогите!
спрашивать числа и потом вывести отцентрованную хрень
1
5
1
3
0 (ноль значит конец ввода… человек не хочет вводить больше)
*
*****
*
***
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2016, 14:02
Ответы с готовыми решениями:

Нарисовать фигуру используя двумерный массив
Привет. Подскажите кто, как нарисовать с помощью двумерного массива? * * * * * * * * * * и *...

Задан одномерный массив из 16 элементов .Сформировать двухмерный массив 4×4, используя функцию преобразования любого
Здравствуйте. Помогите написать программу: Задан одномерный массив из 16 элементов. Сформировать...

Составить программу, которая задаёт и печатает на экране массив, используя датчик случайных чисел
Составить программу, которая задаёт и печатает на экране массив А(n), с помощью датчика случайных...

Построить на экране трехмерную фигуру
Прошу помощи в написании программы. Построить на экране трехмерную фигуру . При формировании...

9
8 / 7 / 3
Регистрация: 09.10.2014
Сообщений: 165
27.02.2016, 15:02 2
Может не лучшая реализация , но работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    setlocale(LC_ALL, "");
    int i;int cur=0;
    int *arr = new int[i];
    
    cout<<"Введите числа.Нажмите "0" что бы прекратить ввод\n";
    
    for(i=0;1;i++){
        cin>>arr[i];
            cur++;
                if (arr[i]==0){
                break;
        } 
    }
    
    cout<<endl;
    
    for(i=0;cur>0;cur--,i++){
        for(;arr[i]>0;arr[i]--){
            cout<<"*";
            }
        cout<<endl; 
    }
    delete[] arr;
    system("pause");
    return 0;   
}
0
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 9
27.02.2016, 15:05  [ТС] 3
Спасибо большое! А как сделать что бы звездочки отцентрировано выводились?
0
8 / 7 / 3
Регистрация: 09.10.2014
Сообщений: 165
27.02.2016, 15:08 4
Цитата Сообщение от Vodgor Посмотреть сообщение
*
*****
*
***
В данном коде "*" выводятся как на Вашем примере
1
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 9
27.02.2016, 15:12  [ТС] 5
да, но мне надо что бы оно было отцентрировано. и можете мне объяснить зачем там точка с запятой в скобках:
for(;arr[i]>0;arr[i]--)
0
Модератор
Эксперт С++
13678 / 10888 / 6465
Регистрация: 18.12.2011
Сообщений: 29,056
27.02.2016, 15:13 6
DEVILD_Roma,
Цитата Сообщение от DEVILD_Roma Посмотреть сообщение
C++
1
2
3
int i;
int cur=0; 
int *arr = new int[i];
i не присвоено значение, т.е. new int[i] - выделит неизвестное количество памяти.
0
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 9
27.02.2016, 15:14  [ТС] 7
а можете написать как надо правильно?
0
8 / 7 / 3
Регистрация: 09.10.2014
Сообщений: 165
27.02.2016, 15:22 8
Цитата Сообщение от Vodgor Посмотреть сообщение
и можете мне объяснить зачем там точка с запятой в скобках:
for(;arr[i]>0;arr[i]--)
в цикле for есть (начало; условие; шаг)
в данном цикле начала ненужно
0
Модератор
Эксперт С++
13678 / 10888 / 6465
Регистрация: 18.12.2011
Сообщений: 29,056
27.02.2016, 15:26 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    const int MAX_STRINGS=100;
    int arr[MAX_STRINGS];
    
    cout<<"Введите числа.Нажмите 0 чтобы прекратить ввод\n";
    int n=-1;    
    do
    {
        n++;
        cin>>arr[n];
    }while(n<MAX_STRINGS-1 && arr[n]!=0);
    n++;
    int maxlen=arr[0];
    for(int i=1;i<n;i++)
        if(maxlen<arr[i])
            maxlen=arr[i];
 
    cout<<endl;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<(maxlen-arr[i])/2;j++)
            cout<<" ";
        for(int j=0;j<arr[i];j++)
            cout<<"*";
        cout<<endl; 
    }
    system("pause");
    return 0;   
}
0
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 9
27.02.2016, 23:57  [ТС] 10
Большое спасибо, но это очень тяжело для меня. Возможно вы можете сделать полегче?

Добавлено через 13 минут
я понял, спасибо. но все таки код слегка кривовато работает

Добавлено через 8 часов 8 минут
ну так что? можете мне помочь сделать как-то полегче?
0
27.02.2016, 23:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2016, 23:57
Помогаю со студенческими работами здесь

Используя указатели, сформировать вещественный массив
доброго времени суток . такая задача двумерный массив размер 3 на 4 (тоесть вектор векторов)....

Написать программу выводящую на экране фигуру куб
Ассемблер. Написать программу выводящую на экране фигуру куб.

Используя значения из массива Х сформировать массив Y по формуле
Нужна помощь. Помогите плиз написать прогу. Буду при много благодарен. Заполнить массив Х...

Используя датчик случайных чисел (Random) сформировать массив A
Paskal..... С помощью датчика случайных чисел (Random) формулируйте массив A, состоящий из 5 чисел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru