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

Циклом for напечатать ромб - C++

Восстановить пароль Регистрация
 
-ExotiC-
1 / 1 / 0
Регистрация: 25.12.2012
Сообщений: 29
27.12.2012, 22:41     Циклом for напечатать ромб #1
Напишите программу, которая напечатает следующий ромб. Вы можете использовать операторы вывода, которые печатают или одну звездочку (*), или один пробел. Максимально используйте повторение (с вложенными структурами for) и минимизируйте число операторов вывода.

Сам ромб - http://www.image.kg/images/2012/12/28/XfOMS.png

Так и не додумался как правильно выполнить задачу. Подскажите пожалуйста, заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 22:41     Циклом for напечатать ромб
Посмотрите здесь:

C++ Ромб. Что не так написал?
ромб C++
Изобразить ромб C++
Квадрат,круг,стрелка,ромб C++
Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
27.12.2012, 23:03     Циклом for напечатать ромб #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
#include <iostream>
using namespace std;
int main(void)
{
    bool map[9][9]=
   {{0,0,0,0,1,0,0,0,0},
    {0,0,0,1,1,1,0,0,0},
    {0,0,1,1,1,1,1,0,0},
    {0,1,1,1,1,1,1,1,0},
    {1,1,1,1,1,1,1,1,1},
    {0,1,1,1,1,1,1,1,0},
    {0,0,1,1,1,1,1,0,0},
    {0,0,0,1,1,1,0,0,0},
    {0,0,0,0,1,0,0,0,0}};
    for(int i=0; i<9; i++)
    {
        for(int j=0; j<9; j++)
        {
            if(map[i][j]) cout<<"*";
            else cout<<" ";
        }
        cout<<endl;
    }
}
нарисуйте карту, и заполняйте символами по ней
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 143
27.12.2012, 23:17     Циклом for напечатать ромб #3
"Верхушка" , подумаю еще над оставшейся частью.
C++
1
2
3
4
5
6
7
void romb(int b,int a){
    for(int i=b;i<a;i++)cout<<" ";
    for(int i=0;i<=b*2;i++)cout<<"*";
    cout<<"\n";
    if(b<a)romb(b=b+1,a);
    
}
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
28.12.2012, 02:20     Циклом for напечатать ромб #4
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
using namespace std;
//---------------------------------------------------------------------------
void spaces(size_t n)
{
    for(;n--;) cout<<" ";
}
//---------------------------------------------------------------------------
void stars(size_t n)
{
    for(;n--;) cout<<"*";
}
//---------------------------------------------------------------------------
int main()
{
using namespace std;
 
size_t offset= 5;
size_t count= 1;
int k=1;
 
for(;offset!=6 || k!=-1;)
 {
     spaces(offset);
     stars(count);
     cout<<endl;
 
     offset-=k;
     count+=k*2;
 
     if(!offset) k=-1;
 }
 
system("pause");
return 0;
}
//---------------------------------------------------------------------------
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
28.12.2012, 02:29     Циклом for напечатать ромб #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
    bool up = true;
    int spaces = 4;
    int stars = 1;
    for (int i=0; i < 9; i++)
    {
        for (int j = 0; j < spaces; j++)
            std::cout << ' ';
        for (int j = 0; j < stars; j++)
            std::cout << '*';
        std::cout << std::endl;
        up ? (spaces--, stars += 2) : (spaces++, stars -= 2);
        if (spaces == 0) up = !up;
    }
}
Yandex
Объявления
28.12.2012, 02:29     Циклом for напечатать ромб
Ответ Создать тему
Опции темы

Текущее время: 06:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru