С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 13.07.2020
Сообщений: 8

Заполнить массив так, чтобы каждый элемент был равен сумме двух предыдущих элементов этого массива

13.07.2020, 19:08. Показов 4607. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Никак не могу понять в чем ошибка. Почему не заполняется массив дальше 1 первой строки?


**Напишите программу, которая создает динамический двухмерный массив и заполняет его по следующему принципу:
пользователь вводит два числа (например, 3 и 5), первый элемент массива принимает значение первого числа (3),
второй элемент – значение второго числа (5), третий элемент массива – сумма первого и второго элементов,
четвертый элемент массива – сумма второго и третьего и т.д.
Созданный массив вывести на экран.




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
85
86
87
88
89
90
91
92
#include <iostream>
#include <conio.h> // time(), clock()
#include <iomanip>
#include <Windows.h>
 
using namespace std;
 
#define RAND(min,max) (rand()%((max)-(min)+1)+(min))
//#define MyType unsigned long long
typedef unsigned long long  ullong;
typedef ullong              MyType;
 
void InitMas(MyType** pArr, int Row, int Col);
void PrintMas(MyType** pArr, int Row, int Col);
 
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand(time(0));
 
    int Row, Col;
    cout << "Введите размеры массива (row, col): ";
    cin >> Row >> Col;
    MyType** Mas;
 
 
    //int*** *pmas = new int*** [10]
    Mas = new MyType * [Row];
    for (int i = 0; i < Row; i++) {
        Mas[i] = new MyType[Col];
        //int* mas = new int[Size];
    }
 
 
 
    InitMas(Mas, Row, Col);
 
 
 
    PrintMas(Mas, Row, Col);
 
 
    for (int i = 0; i < Row; i++) {
        delete[] Mas[i];
    }
 
    delete[] Mas;
 
    cin.get(); cin.get();
    return 0;
}
 
 
 
void InitMas(MyType** pArr, int Row, int Col)
{
    cout << "Введите первый и второй элемент массива: ";
    
 
    MyType *p1 = *pArr;
    cin >> *p1;
    ++p1;
    cin >> *p1;
    ++p1;
    int i, j;
    for (i = 0; i < Row; i++) {
        if (i == 0) {
            for (int j = 2; j < Col; j++) {
                *p1 = *(p1 - 1) + *(p1 -2);
                ++p1;
            }
        }
        else if (i != 0) {
            for (int j = 0; j < Col; j++) {
                *p1 = j;
                ++p1;
            }
        }
    }
}
 
void PrintMas(MyType** pArr, int Row, int Col)
{
    for (int i = 0; i < Row; i++) {
        for (int j = 0; j < Col; j++) {
            cout << setw(3) << pArr[i][j] << " ";
        }
        cout << endl;
    }
 
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.07.2020, 19:08
Ответы с готовыми решениями:

Заполнить массив N случайными числами, так чтобы каждый элемент в массиве был равен сумме элементов его соседей слева
Массивы должны быть рандомные

Сформировать массив так, чтобы каждый элемент, начиная с третьего, был равен произведеннию двух предыдущих
uses crt; var a:array of integer; i,n:integer; begin writeln (' Введите длину массива'); readln(n); writeln (' введите...

Сформировать массив так, чтобы каждый последующий элемент, начиная с третьего, был равен разности двух предыдущих
Напишите пожалуйста программу формирования и вывода массива произвольного размера так, чтобы каждый последующий элемент, начиная с...

4
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
13.07.2020, 19:16
Цитата Сообщение от Astana01 Посмотреть сообщение
пользователь вводит два числа (например, 3 и 5), первый элемент массива принимает значение первого числа (3),
второй элемент – значение второго числа (5), третий элемент массива – сумма первого и второго элементов,
четвертый элемент массива – сумма второго и третьего и т.д.
- в смысле так по строкам должен проходить?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
13.07.2020, 19:27
Цитата Сообщение от Astana01 Посмотреть сообщение
... четвертый элемент массива – сумма второго и третьего и т.д.
Как это описание натянуть на двумерный массив?
0
0 / 0 / 0
Регистрация: 13.07.2020
Сообщений: 8
13.07.2020, 21:54  [ТС]
Значения должны выводиться по следующему примеру :
3 5 8 13 21
34 55 89 144 233
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
14.07.2020, 09:29
Лучший ответ Сообщение было отмечено Astana01 как решение

Решение

Цитата Сообщение от Astana01 Посмотреть сообщение
первый элемент массива ..., второй элемент ..., третий элемент
пронумеровать элементы двумерного массива можно по-разному, например начиная с верхнего левого угла слева направо, перемещаясь по строкам сверху вниз
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
#include <iostream>
using namespace std;
 
int main()
{    
    int n, m, p=0;    
    cout << "n="; cin >> n;
    cout << "m="; cin >> m; 
    
      double **c = new double*[n], a, b; 
    for (int i = 0; i < n; i++)
       c[i]=new double[m];
       
    cout << "num1="; cin >> a;
    cout << "num2="; cin >> b;
    
    c[0][0]=a;
    c[0][1]=b;
    
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
        p++;
        if(p>2)
        {
            c[i][j]=a+b;
            a=b;
            b=c[i][j];
        }
        cout << c[i][j] << " ";
        }
    cout << "\n";
    }
 
    for (int i = 0; i < n; i++)
    delete[]c[i];
    delete[]c;
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.07.2020, 09:29
Помогаю со студенческими работами здесь

Сформировать массив n элементов где каждый элемент массива равен сумме двух предыдущих
Сформировать массив n элементов где каждый элемент массива равен сумме двух предыдущих элементов, умноженных на порядковый номер элемента.

Заполнить массив из 10 элементов, чтобы каждый элемент был равен сумме делителей своего номера
Заполнить массив из 10 элементов каждый элемент был равен сумме делителей своего номера

Создать массив, каждый элемент которого равен сумме двух предыдущих элементов
Одномерный Известны два первых элемента массива B: B=4, B=8. Создать массив, каждый элемент которого равен сумме двух предыдущих элементов....

Создать массив, каждый элемент которого равен сумме двух предыдущих элементов
Известны два первых элемента массива B: B=4, B=8.Создать массив, каждый элемент которого равен сумме двух предыдущих элементов. Вывести...

Заполнить массив C[50] так, чтобы каждый элемент был равен тангенсу от S[i]
Создать массив S с рандомными числами от -200 до 200. Вывести на экран и определить количество элементов, не равных значению x. Заполнить...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru