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

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

Войти
Регистрация
Восстановить пароль
 
tontb
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 9
#1

последовательность чисел b1,...bn - C++

20.10.2010, 22:23. Просмотров 410. Ответов 2
Метки нет (Все метки)

Дана последовательность чисел b1,...bn. Получить квадратную матрицу порядка n, элементами которой являются числа b1,...,bn^n, расположенные по схеме:
0
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2010, 22:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос последовательность чисел b1,...bn (C++):

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

Вводится последовательность из N целых чисел. Сформировать последовательность, - C++
Вводится последовательность из N целых чисел. Сформировать последовательность, каждый элемент которой равен сумме цифр исходной...

Вводится последовательность целых чисел,0 –конец последовательности. Определить, содержит ли последовательность хотя бы три отрицательных четных числа - C++
Составить алгоритм решения задачи и написать программу на языке С++. В алгоритме и программе массивов не использовать. ...

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

Дана последовательность из N натуральных чисел. Выбросить из последовательности минимальное количество чисел, - C++
Дана последовательность из N натуральных чисел. Выбросить из последовательности минимальное количество чисел, чтобы оставшиеся состояли из...

Дана последовательность из М чисел. Вычислить сумму и количество чисел, которые меньше 5 - C++
1.Дана последовательность из М чисел. Вычислить сумму и количество чисел, которые меньше 5.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TrenAr
21 / 20 / 2
Регистрация: 21.06.2010
Сообщений: 80
21.10.2010, 02:07 #2
Цитата Сообщение от tontb Посмотреть сообщение
Дана последовательность чисел b1,...bn. Получить квадратную матрицу порядка n, элементами которой являются числа b1,...,bn^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
80
81
82
83
84
#include <stdio.h>
 
#define SIZE 7
 
void printIt( short mF[ SIZE ][ SIZE ] );
void fillIt( short mF[ SIZE ][ SIZE ], short *x, short *y, short *value );
 
int main()
{
    short x = 0, y = 0, value = 1;
    short m[ SIZE ][ SIZE ] = { 0 };
    
    while ( ( x != SIZE - 1 ) && ( y != SIZE - 1 ) )
    {
          fillIt( m, &x, &y, &value );
          printIt( m );
    }
    
    getch();
    return 0;
}
 
//Zigzag
//x and y is inversy!
void fillIt( short mF[ SIZE ][ SIZE ], short *x, short *y, short *value )
{
     //Current point
     if ( ( *x >= 0 ) && ( *x <= SIZE - 1 )
        && ( *y >= 0 ) && ( *y <= SIZE - 1 ) )
        mF[ *x ][ *y ] = *value;
     //Step down
     (*x)++;
     if ( *x <= SIZE - 1 )
     {
          (*value)++;
          mF[ *x ][ *y ] = *value;
     }
     //Diagonal': up and right
     do
     {
          (*x)--;
          (*y)++;
          if ( ( *x >= 0 ) && ( *x <= SIZE - 1 )
             && ( *y >= 0 ) && ( *y <= SIZE - 1 ) )
          {
                (*value)++;
                mF[ *x ][ *y ] = *value;
          }
     } while ( ( *x > 0 ) && ( *y < SIZE - 1 ) );
     //Step to right
     (*y)++;
     if ( *y <= SIZE - 1 )
     {
          (*value)++;
          mF[ *x ][ *y ] = *value;
     }
     //Diagonal': down and left
     do
     {
          (*x)++;
          (*y)--;
          if ( ( *x >= 0 ) && ( *x <= SIZE - 1 )
             && ( *y >= 0 ) && ( *y <= SIZE - 1 ) )
          {
                (*value)++;
                mF[ *x ][ *y ] = *value;
          }
     } while ( ( *x < SIZE - 1 ) && ( *y > 0 ) );
}
 
//Print massive     
void printIt( short mF[ SIZE ][ SIZE ] )
{
     short i, j;
     
     for ( i = 0 ; i <= SIZE - 1 ; i++ )
     {
         for ( j = 0 ; j <= SIZE - 1 ; j++ )
             printf( "%2hd ", mF[ i ][ j ] );
         printf( "\n" );
     }
     printf( "\n" );
     getch();
}
0
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
21.10.2010, 14:24 #3
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
////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <vector>
////////////////////////////////////////////////////////////////////////////////////
typedef std::vector<int>    T_row;
typedef std::vector<T_row>  T_matr;
////////////////////////////////////////////////////////////////////////////////////
void  print(const T_matr&  matr)
{
    for(size_t  i = 0; i < matr.size(); ++i)
    {
        for(size_t  j = 0; j < matr.size(); ++j)
        {
            std::cout << matr[i][j]
                      << '\t';
        }
        std::cout << std::endl
                  << std::endl
                  << std::endl;
    }
}
////////////////////////////////////////////////////////////////////////////////////
bool  go
    (
        int&  i, 
        int&  j,         
        int   n
    )
{
    int remainder = (i + j) % 2;
    int& ii = remainder ? j : i;
    int& jj = remainder ? i : j;
 
    if(ii == n - 1)
    {
        if(jj == n - 1)
        {
            return  false;
        }
        ++jj;
    }
    else 
    {
        ++ii;        
        if(jj)
        {
            --jj;
        }     
    } 
    return  true;
}
////////////////////////////////////////////////////////////////////////////////////
void  fill(T_matr&  matr)
{   
    int val  = 1;
    int i    = 0;
    int j    = 0;
    do
    {
        matr[i][j] = val++;
    }while(go(i, j, matr.size()));
}
////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::cout << "n = ";    
    int n = 0;
    std::cin >> n;
    std::cout << std::endl;
    T_matr  matr(n, T_row(n));
    fill(matr);
    print(matr);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2010, 14:24
Привет! Вот еще темы с ответами:

Дана последовательность чисел. Найти количество различных чисел в этой последовательности - C++
Дана последовательность чисел. Найти количество различных чисел в этой последовательности. Очень жду ваших решений, заранее огромное...

Задана последовательность из n чисел. Найти количество чисел больше своего номера - C++
заданая последовательность из n чисел: а(1),a(2)...a(n). найти количество чисел больше своего номера...напешите полностью листинг пожалуйста

Дана последовательность чисел. Найти количество различных чисел в этой последовательности - C++
Дана последовательность чисел. Найти количество различных чисел в этой последовательности Дана последовательность чисел. Найти...

Имеется последовательность чисел содержащая n элементов определить количество четных чисел в последовательности. - C++
Имеется последовательность чисел содержащая n элементов определить количество четных чисел в последовательности.


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

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

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