Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
#1

Вывести N одинаковых символов - C++

28.12.2013, 14:48. Просмотров 1763. Ответов 7
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане.
Задачка предельно проста:
Вывести пирамиду из символа (например, символа 'X'). Высота пирамиды равна 20 строкам.
Должно получиться что-то вроде этого:

Название: Безымянный.png
Просмотров: 164

Размер: 613 байт

Я реализовал программу следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <iomanip>
#include <conio.h>
 
using namespace std;
 
int main()
{
    const char ch='X';
    
    for (int i=0; i<20; i++)
    {
        for (int j=19-i; j>=0; j--)
            cout << ' ';
        for (int j=1; j<2*i; j++)
            cout << ch;
        for (int j=20+i; j<40; j++)
            cout << ' ';
        cout << endl;
    }
 
    return 0;
}
Вопрос: есть ли команда, которая выводит N символов (например cout << 8*'X'; //выводит 8 символов 'X')?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2013, 14:48     Вывести N одинаковых символов
Посмотрите здесь:

Найти и вывести все имеющиеся пары стоящих рядом одинаковых символов - C++
Помогите решить пожалуйста: Среди данного массива символов, найти и вывести все имеющиеся пары стоящих рядом одинаковых символов. Все...

В строке вывести последовательности состоящие из трех одинаковых подряд идущих символов - C++
Ввести строку с клавиатуры. Найти и вывести на экран последовательности, состоящие из трех одинаковых подряд идущих символов.

Замена одинаковых символов в слове - C++
Ввести фразу. Все последовательности одинаковых символов заменить на выражения N(C). Где N – количество последовательных одинаковых...

Пара соседствующих одинаковых символов - C++
Даны символы s1, s2, … Известно, что символ s1 отличен от восклицательного знака и что среди s2, s3,... есть по крайней мере один...

Как подсчитать количество одинаковых символов?(C++) - C++
Вот сама задача: Написать программу, которая проверяет, сколько каждый символ встречается во введённой с клавиатуры строке. Вот то не...

Проверить, состоят ли строки из одинаковых символов - C++
Требуется проверить можно ли получить первую строку из второй, поменяв местами символы, или наоборот. В массивах last и first хранится N...

Как убрать вывод двух одинаковых символов - C++
есть код, выводит 36 комбинаций. но среди них есть лишние, как сделать так, чтобы он не выводил те комбинации где идут подряд две двойки...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex5
1048 / 711 / 104
Регистрация: 12.04.2010
Сообщений: 1,789
28.12.2013, 15:03     Вывести N одинаковых символов #2
Можно воспользоваться функцией printf() ( заголовочный файл <stdio.h> )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    char str[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 
    printf( "%10.2s \n", str );
    printf( "%10.3s \n", str );
    printf( "%10.4s \n", str );
    // "%10.4s"  означает: 10 - ширина поля вывода, 4 - число знаков из строки 
 
    // можно также использовать переменные
    int m = 20, k = 5;
    printf( "%*.*s \n", m, k, str );
    k = 6;
    printf( "%*.*s \n", m, k, str );
    k = 7;
    printf( "%*.*s \n", m, k, str );
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
28.12.2013, 15:38     Вывести N одинаковых символов #3
На основе идет Alex5, получается классный код
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <conio.h>
using namespace std;
void main()
{
char str[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    for(int m = 20, k = 1;k<40;k+=2,m++)
       printf( "%*.*s \n", m, k, str );
    _getch();
}
genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
02.01.2014, 22:51  [ТС]     Вывести N одинаковых символов #4
В общем проблема решается предельно просто:
Написать функцию, которая будет выводить N символов, а в качестве аргумента будет само число N:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void repchar(int );                    // прототип функции
//...............................................
int main ()
{
    //...
    repchar(10);
    //...
 
    return 0;
}
void repchar(int a)
{
    for(int i=0; i<a; i++)
        cout << 'X';
    cout << '/n';
}
MrGluck
Модератор
Эксперт CЭксперт С++
7164 / 4330 / 632
Регистрация: 29.11.2010
Сообщений: 11,763
03.01.2014, 03:25     Вывести N одинаковых символов #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    const char c = 'X';
    const int N = 20;
    for (int i=1; i <= N; i++)
    {
        for (int j=1; j < 2*N; j++)
            std::cout << (j - i < N && j + i > N ? c : ' ');
        std::cout << std::endl;
    }
}
genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
03.01.2014, 18:09  [ТС]     Вывести N одинаковых символов #6
MrGluck, элегантно Спасибо!
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
03.01.2014, 18:14     Вывести N одинаковых символов #7
в цикле можно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2014, 19:04     Вывести N одинаковых символов
Еще ссылки по теме:

Выясните, имеется ли в массиве символов пара соседних одинаковых - C++
Пусть даны символы S1, S2,...,Sn. Известно, что символ S1 отличен от восклицательного знака и что среди символов S2,S3,... есть по крайней...

Выяснить, имеется ли среди s1,...,sn пара соседствующих одинаковых символов - C++
Даны символы s1, s2,... Известно, что символ s1 отличен от восклицательного знака и что среди s2, s3, ... есть по крайней мере один...

Количество пар рядом стоящих одинаковых символов строки - C++
Задание на 7 лабораторную работу Написать программу, которая принимает от пользователя одну или строки, в зависимости от задачи....

Выяснить, имеется' ли среди s1,…,sn пара соседствующих одинаковых символов - C++
Выяснить, имеется' ли среди s1,…,sn пара соседствующих одинаковых символов.

Определить максимальное количество одинаковых символов, идущих подряд - C++
Ввести строку с клавиатуры. Определить максимальное количество одинаковых символов, идущих подряд. срочно нужно до 6 числа.помогите


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

Или воспользуйтесь поиском по форуму:
genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
03.01.2014, 19:04  [ТС]     Вывести N одинаковых символов #8
Esecman, что я и реализовал в своей программе. Однако код получился слишком громоздким, и я искал более элегантное решение задачи.
Yandex
Объявления
03.01.2014, 19:04     Вывести N одинаковых символов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru