0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 7
1

Вывести в консоли треугольник из звездочек

15.02.2017, 18:09. Показов 19539. Ответов 11

Нужно написать программу,которая выводит на экран изображение .Программа может использовать только три оператора вывода: [cout << “*”;], [cout << “ ”;] та [cout << endl;]. В программа должен вводится размер рисунка, тоесть максимальный размер за горизонталью.Также должна выбиваться ошибка при вводе чётных чисел.Вот есть пример,но он не выполняет всех требований.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
 
using namespace std;
int main()
{
 
int n, i, j;
cout<<”n:;
cin>>n;                       
for (i=0; i<n; i++)
 {
  for (j = n - i; j > 0; j--)
         cout <<*;
  for (j = i; j < n; j++)
         cout << “ ”;
  cout<<endl;
 }
getch();
}
Нужно переделать программу под этот рисунок:
*

Добавлено через 6 минут
Нужно переделать программу под этот рисунок(без подчеркиваний):
_______*
______**
_____***
____****
___*****
__******
_*******
********
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2017, 18:09
Ответы с готовыми решениями:

Вывести на экран треугольник из звездочек
Вывести на экран треугольник из символов '*' вида: * *** ***** ******* Высота...

Вложенные циклы: вывести треугольник из звездочек
Написать программу которая выводит рисунок * ** * * **** с помощью вложенных циклов

Нарисовать перевернутый треугольник из звездочек (цикл while)
*** ..** ...*

Треугольник из звездочек с возможностью вводить самому размер
Есть код, в котором нужно указывать размер треугольника, препод просит сделать так, чтоб прога...

11
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
15.02.2017, 19:20 2
GGFFRT,
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <algorithm>
#include <iterator>
 
class triangle_string_iterator
{
    int size;
    int pos;
    int thres;
 
    char first;
    char second;
    char newline;
 
public:
    triangle_string_iterator() : pos(-1) {}
 
    triangle_string_iterator(int size, int thres, char first, char second, char newline = '\n') :
        size(size),
        pos(0),
        thres(thres),
        first(first),
        second(second),
        newline(newline) {}
 
    bool operator==(const triangle_string_iterator& r) const
    {
        if (pos == -1 || pos == size + 1)
            return r.pos==-1 || r.pos == r.size + 1;
        return pos == r.pos &&
            size == r.size &&
            thres == r.thres&&
            first == r.first&&
            second == r.second&&
            newline == r.newline;
    }
 
    bool operator!=(const triangle_string_iterator& r) const
    {
        return !(*this == r);
    }
 
    triangle_string_iterator& operator++()
    {
        if (pos == -1 || pos == size + 1)
            throw std::out_of_range("");
        pos++;
        return *this;
    }
 
    const char& operator*() const
    {
        if (pos == -1 || pos == size + 1)
            throw std::out_of_range("");
        if (pos < thres)
            return first;
        if (pos == size)
            return newline;
        return second;
    }
};
 
namespace std {
    template<>
    struct iterator_traits<triangle_string_iterator>
    {
        typedef std::forward_iterator_tag iterator_category;
        typedef char value_type;
    };
}
 
int main()
{
    const int N = 8;
    for (int i = 1; i <= N; i++)
        std::copy(triangle_string_iterator(N, N-i, ' ', '*'), triangle_string_iterator(), std::ostream_iterator<char>(std::cout));
}
0
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
15.02.2017, 19:30 3
Воть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
        int main (){
 
        for (int i(0); i!=8; i++){
            for (int j(8); j!=i; j--){
                std::cout << " ";
            }
            for (int r(0); r!=i; r++){
                std::cout << "+";
            }
            std::cout << std::endl;
        }
        system ("pause");
        return 0;
        }
0
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 7
15.02.2017, 21:00  [ТС] 4
Я наверно не правильно обьяснил,там нужно вводить число n,и от этого числа график должен меняться.
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
15.02.2017, 21:12 5
Цитата Сообщение от GGFFRT Посмотреть сообщение
Я наверно не правильно обьяснил,там нужно вводить число n,и от этого числа график должен меняться.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <algorithm>
#include <iterator>
 
class triangle_string_iterator
{
    int size;
    int pos;
    int thres;
 
    char first;
    char second;
    char newline;
 
public:
    triangle_string_iterator() : pos(-1) {}
 
    triangle_string_iterator(int size, int thres, char first, char second, char newline = '\n') :
        size(size),
        pos(0),
        thres(thres),
        first(first),
        second(second),
        newline(newline) {}
 
    bool operator==(const triangle_string_iterator& r) const
    {
        if (pos == -1 || pos == size + 1)
            return r.pos==-1 || r.pos == r.size + 1;
        return pos == r.pos &&
            size == r.size &&
            thres == r.thres&&
            first == r.first&&
            second == r.second&&
            newline == r.newline;
    }
 
    bool operator!=(const triangle_string_iterator& r) const
    {
        return !(*this == r);
    }
 
    triangle_string_iterator& operator++()
    {
        if (pos == -1 || pos == size + 1)
            throw std::out_of_range("");
        pos++;
        return *this;
    }
 
    const char& operator*() const
    {
        if (pos == -1 || pos == size + 1)
            throw std::out_of_range("");
        if (pos < thres)
            return first;
        if (pos == size)
            return newline;
        return second;
    }
};
 
namespace std {
    template<>
    struct iterator_traits<triangle_string_iterator>
    {
        typedef std::forward_iterator_tag iterator_category;
        typedef char value_type;
    };
}
 
int main()
{
    int N;
    std::cout << "Enter N: ";
    std::cin >> N;
    for (int i = 1; i <= N; i++)
        std::copy(triangle_string_iterator(N, N-i, ' ', '*'), triangle_string_iterator(), std::ostream_iterator<char>(std::cout));
}
1
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 7
15.02.2017, 21:16  [ТС] 6
Слишком сложный код,подходит ответ Фотофеникса,но только с вводом n и ошибкой при чётных числах.
0
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
15.02.2017, 21:23 7
Ну так в чем проблема? Доработайте.
0
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 7
15.02.2017, 21:32  [ТС] 8
Я не могу понять сам принцип,У меня есть пример кода,но он для другого треугольника:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
void main()
{
setlocale(LC_ALL, "RUS");
int a;
cout<<"Введите а:";
cin>>a;
for (int y=0;y<a;y++){
for(int x=0;x<a;x++)
if (x<=y)
cout<<"*";
else
cout<<" ";
cout<<"\n";
}
}
0
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
15.02.2017, 21:48 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
    
        
    int main (){
 
        int X (0);
        //std::cin >> X - пользователь вводит число. 
 
        for (int i(0); i!=X; i++){ // Создаем основной цикл.
            for (int j(X); j!=i; j--){ // Первый вложенный цикл. Условия цикла рассписать?
                std::cout << " ";
            }
            for (int r(0); r!=X; r++){ // Второй вложенный цикл.
                std::cout << "*";
            }
            std::cout << std::endl;
    // Принцип следующий: Начинается основной цикл, выполняет первый вложенный цикл, выполняется второй вложенный цикл.
    // Основной цикл завершается и начинается опять. И снова выполняется первый вложенный цикл, потом второй.
    // И так, до выполнения условия основного цикла. Ах да, переменные вложенного цикла обнуляются при каждом 
    // новом цикле основного. Надеюсь доходчиво объяснил.
        }
    }
0
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 7
15.02.2017, 22:09  [ТС] 10
Я не понимаю именно для своего рисунка

Добавлено через 14 минут
Мне нужна программа для моего рисунка,по примеру программы которую я скинул последней.
0
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
15.02.2017, 22:13 11
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
#include <iostream>
    
        
     int main (){
 
        setlocale(LC_ALL, "RUS");
        int a;
 
        std::cout<<"Введите а:";
        std::cin>>a;
        for (int y=0; y < a; y++){ // Основной цикл.
            for (int j(a); j!=y; j--){ // Косяк к условием.
                if (j < y){
                    std::cout << "*";
                }
                else {
                    std::cout << "&";
                }
            } std::cout << std::endl;
        }
 
 
        system ("pause");
        return 0;
 
     }
Все, я ушел спать.
0
Don't worry, be happy
17781 / 10545 / 2035
Регистрация: 27.09.2012
Сообщений: 26,514
Записей в блоге: 1
15.02.2017, 22:14 12
Вывести треугольник из символов с использованием цикла for
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2017, 22:14
Помогаю со студенческими работами здесь

Программа, печатающая в консоли треугольники из звездочек
Цель задания - чтобы программа вывела треугольники в консоль в таком виде, как показано на рисунке,...

Нарисовать треугольник в консоли
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); char...

Вывести квадрат из звездочек
Напишите программу

Нарисовать треугольник в консоли с помощью '*'
помогите пожалуйста написать программу в консоли Текст задания положено переписывать в тему!


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru