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

Вывести цифры треугольником - C++

Восстановить пароль Регистрация
 
@Макси@
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 18
20.12.2011, 18:12     Вывести цифры треугольником #1
Помогите, пожалуйста
Нужно вывести на экран:
Код
1111111
 222222
  33333
   4444
    555
     66
      7
В C++ с использование цикла!

Добавлено через 43 секунды
цифры идут по правой стороне, а не полевой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13955 / 8786 / 1222
Регистрация: 24.12.2010
Сообщений: 15,913
20.12.2011, 18:42     Вывести цифры треугольником #2
C
1
2
3
4
5
for(i=1; i<=7;i++) {
 printf("%*.*s", i-1, i-1, "");
 for(j=7; j>=i; j--) printf("%d", i);
 printf("\n");
}
-=ЮрА=-
Заблокирован
Автор FAQ
20.12.2011, 18:43     Вывести цифры треугольником #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
    cout<<"Enter number : ";
    int i, j, m;cin>>m;
    for(i = 0; i < m; i++)
    {
        for(j = 0; j < m; j++)
        {
            if(j < i)
                cout<<" ";
            else
                cout<<i + 1;
        }
        cout<<endl;
    }
    system("pause");
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
20.12.2011, 18:44     Вывести цифры треугольником #4
Ниже скрин работы
Миниатюры
Вывести цифры треугольником  
-=ЮрА=-
Заблокирован
Автор FAQ
20.12.2011, 18:46     Вывести цифры треугольником #5
Цитата Сообщение от Байт Посмотреть сообщение
for(i=1; i<=7;i++) {
*printf("%*.*s", i-1, i-1, "");
*for(j=7; j>=i; j--) printf("%d", i);
*printf("\n");
}
- ИМХО ужас!

Добавлено через 48 секунд
В добавок
Цитата Сообщение от @Макси@ Посмотреть сообщение
В C++ с использование цикла!
Цитата Сообщение от Байт Посмотреть сообщение
printf
- это СИ!
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
20.12.2011, 18:52     Вывести цифры треугольником #6
-=ЮрА=-, ключевые слова вроде for и while тоже ведь от си перешли в с++, от них ведь избавляться не хотите
-=ЮрА=-
Заблокирован
Автор FAQ
20.12.2011, 18:57     Вывести цифры треугольником #7

Не по теме:

Цитата Сообщение от Gepar Посмотреть сообщение
от них ведь избавляться не хотите
- интересно как цикл можно заменить goto или рекурсией???
Человеку надо просто я и пишу просто for есть и в Си и в С++ а вот printf - это только Си



Добавлено через 1 минуту

Не по теме:

Gepar, как вариант жду чего-нибудь высокоуровневое достойное С++ от вас!!!

@Макси@
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 18
20.12.2011, 19:23  [ТС]     Вывести цифры треугольником #8
Ребят, спасибо! но это сложновато, мы такое не проходили! мне не поверят
а эта программа вообще не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
        cout<<"Enter number : ";
        int i, j, m;cin>>m;
        for(i = 0; i < m; i++)
        {
                for(j = 0; j < m; j++)
                {
                        if(j < i)
                                cout<<" ";
                        else
                                cout<<i + 1;
                }
                cout<<endl;
        }
        system("pause");
        return 0;
}
Добавлено через 2 минуты
есть такой код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main( int argc, char ** argv )
{
   int i, u;
   
   for( i = 1; i < 8; i++ )
   {
      for( u = 0; u < 8 - i; u++ )
         putchar( '0' + i );
         
      putchar( '\n' );
   }
   
   return 0;
}
только мы не проходили "putchar"!
и здесь цифры на левой стороне показываются!
помогите, только чтоб на правой было!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.12.2011, 19:51     Вывести цифры треугольником #9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
жду чего-нибудь высокоуровневое достойное С++
типа этого?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iomanip>
using namespace std;
 
int main(){
    int w, i;
    
    std::cout << "Width: ";
    std::cin >> w;
    
    for ( i = 1; i <= w; ++i )
        cout << setw(i-1) << setfill(' ') << "" << setw(w-i+1) << setfill(static_cast<char>(i + '0')) << "" << endl;
    
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
20.12.2011, 22:29     Вывести цифры треугольником #10
easybudda, изначально отмёл напрочь манипуляторы, из за них алгоритм не чувствуется, моё выссказывание относилось
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
высокоуровневое достойное С++ от вас
- с использованием не циклов, единственное что в голову приходит это рекурсия...
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.12.2011, 00:30     Вывести цифры треугольником #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
изначально отмёл напрочь манипуляторы, из за них алгоритм не чувствуется
А зря. По-моему самое очевидное, что на ум приходит. И получается компактно, и понять не сложно.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
с использованием не циклов, единственное что в голову приходит это рекурсия...
А вот рекурсией как-раз это лучше не делать. Рекурсивные функции должны быть просты, как три копейки, иначе голову об них сломаешь. А тут простого рекурсивного решения я например не вижу. Интересно было бы посмотреть, если есть такое...
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.12.2011, 07:53     Вывести цифры треугольником #12
Цитата Сообщение от easybudda Посмотреть сообщение
Интересно было бы посмотреть, если есть такое...
только ради интереса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
 
void rec(int a)
{
    if(a==8)
        return;
    int i;
    for(i=1; i<a; i++)
        cout<<" ";
    for(i=a; i<8; i++)
        cout<<a;
    cout<<endl;
    rec(a+1);
}
int main()
{
    rec(1);   
    return 0;
}
могу показать вариант, когда один вызов рек.функции будет выводить всего один символ на экран, если интересно...
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
21.12.2011, 08:10     Вывести цифры треугольником #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n = 0;
    cin >> n;
    int j = 1;
    int s = 1;
    for( int i = 1; i <= n; i++ )
    {
        for( ; j <= n; j++ )
        {
            cout << i;
        }
        cout << endl << setw(i + 1);
        s++;
        j = s;
    }
}
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n = 0;
    cin >> n;
    int j = 1;
    int s = 1;
    for( int i = 1; i <= n; i++ )
    {
        for( ; j <= n; j++ )
        {
            cout << i;
        }
        cout << endl << setw(i + 1);
        s++;
        j = s;
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2011, 10:42     Вывести цифры треугольником
Еще ссылки по теме:

Работа с треугольником C++
Рандомом вывести 3 не повторяющихся цифры C++
Вывести на экран нечетные цифры C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
21.12.2011, 10:42     Вывести цифры треугольником #14
Цитата Сообщение от easybudda Посмотреть сообщение
А тут простого рекурсивного решения я например не вижу. Интересно было бы посмотреть, если есть такое...
- я конечно долго был в недоумении что никто не видит безцикловой рекурсии, а потом взял и написал код
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>
using namespace std;
 
void rekyrsFill(long n, long m, long maxv)
{
    char * arr = new char[m + n + 1];
    memset(&arr[0],' ',n);
    memset(&arr[n],'0' + maxv - m, m);
    arr[m + n] = '\0';
    cout<<arr<<endl;
    delete [] arr;
    if(n < maxv - 1)
        rekyrsFill((n = n + 1), (m = m - 1), maxv);
}
 
int main()
{
    cout<<"Enter m : ";
    int m;cin>>m;
    rekyrsFill(0, m, m + 1);
    system("pause");
    return 0;
}
Цитата Сообщение от easybudda Посмотреть сообщение
А вот рекурсией как-раз это лучше не делать. Рекурсивные функции должны быть просты, как три копейки, иначе голову об них сломаешь.
- Эмм, а если алгоритм предполагает немного логики то его не приводить???

Не по теме:

PS:Далее острить не буду, жду когда "империя нанесёт ответный удар"(если сможет)

Миниатюры
Вывести цифры треугольником  
Yandex
Объявления
21.12.2011, 10:42     Вывести цифры треугольником
Ответ Создать тему
Опции темы

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