Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
75 / 22 / 12
Регистрация: 01.06.2019
Сообщений: 566
1

Заполнения массивов факториалами значений индексов

06.09.2019, 17:07. Показов 3243. Ответов 4
Метки нет (Все метки)

Составить программу заполнения массивов А(N) и В(K) факториалами значений индексов их элементов. Вычисление
факториала выполнить через дополнительную функцию

funcii
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Zap_mas(int* arr, int sz)
{
    //цикл заполнение
    for (int i = 0; i < sz; i++)
        arr[i] = rand() % 100;
}
 
void Vivod_mas(int* arr, int sz)
{
    //цикл вывод
    for (int i = 0; i < sz; i++)
        cout << arr[i] << " ";
}
main

C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    setlocale(LC_ALL, "rus");
 
    int n = 10, d = 0;
    int* arr;
    arr = new int(n);
    cout << "Массив A: ";
    Zap_mas(arr, n);
    Vivod_mas(arr, n);
system("pause")
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2019, 17:07
Ответы с готовыми решениями:

Сумма чётных индексов из 2 массивов
Функция получает два целочисленных массива вычисляет и возвращает сумму элементов массивов с...

Ошибки заполнения массивов
Помогите устранить проблему с данной задачей: &quot;Напишите программу, которая в последовательности...

Алгоритм заполнения двумерных массивов
помогите написать алгоритм для заполнения матрицы nXn 1 6 7 2 5 8 3 4 9 и вторая на фото

Найти для двух массивов количество индексов
Даны массивы A и B. Найти количество номеров (пар), для которых A(i) и B(i) разного знака

4
Модератор
Эксперт С++
10871 / 8990 / 5408
Регистрация: 18.12.2011
Сообщений: 24,029
06.09.2019, 17:36 2
Лучший ответ Сообщение было отмечено Rudman132 как решение

Решение

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
long long factorial(int n)
{
    long long res=1;
    for(int i=2;i<=n;i++)
        res*=i;
    return res;
}
void Zap_mas(long long* arr, int sz)
{
    //цикл заполнение
    for (int i = 0; i < sz; i++)
        arr[i] = factorial(i);
}
int main()
{
    setlocale(LC_ALL, "rus");
 
    int n = 10, d = 0;
    long long* arr;
    arr = new long long(n);
    cout << "Массив A: ";
    Zap_mas(arr, n);
    Vivod_mas(arr, n);
    delete[] arr;
    system("pause");
}
1
6277 / 4261 / 2454
Регистрация: 18.12.2017
Сообщений: 13,286
06.09.2019, 17:59 3
добавлю, что в коде от zss ограничение на размер массива - не более 21. если массивы побольше нужно использовать тип double.
1
75 / 22 / 12
Регистрация: 01.06.2019
Сообщений: 566
06.09.2019, 19:18  [ТС] 4
Цитата Сообщение от zss Посмотреть сообщение
C++
Код не работает

Добавлено через 17 минут
Цитата Сообщение от Rudman132 Посмотреть сообщение
C++
Код не работает
А не, все правильно

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
#include<iostream>
#include<ctime>
using namespace std;
 
void Vivod_mas(long long* arr, int sz)
{
    //цикл вывод
    for (int i = 0; i < sz; i++)
        cout << arr[i] << " ";
}
 
long long factorial(int n)
{
    long long sum = 1;
    for (int i = 2; i <= n; i++)
        sum *= i;
    return sum;
}
void Zap_mas(long long* arr, int sz)
{
    //цикл заполнение
    for (int i = 0; i < sz; i++)
        arr[i] = factorial(i);
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
 
    int n = 5, k = 10;
    long long* arr;
    arr = new long long[n];
    cout << "Массив А: ";
    Zap_mas(arr, n);
    Vivod_mas(arr, n);
 
    cout << "\nМассив B: ";
    Zap_mas(arr, k);
    Vivod_mas(arr, k);
 
    cout << endl;
    system("pause");
}
0
6277 / 4261 / 2454
Регистрация: 18.12.2017
Сообщений: 13,286
06.09.2019, 20:53 5
Rudman132, код можно оптимизировать. чтобы повторно не вычислять одинаковые факториалы, можно оценить что меньше n или k. если k меньше заполнить B(k), скопировать первые k элементов в массив A и добавить недостающие факториалы.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2019, 20:53

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Правильное использование индексов массивов и строк в PHP
Вынесено из темы https://www.cyberforum.ru/php-beginners/thread926635.html RHB,...

Особенности заполнения массивов в цикле с постусловием
Всем доброго времени суток! Собственно вопрос такой. При заполнении массива циклом do { ...

Реализация заданного алгоритма заполнения двумерных массивов
Добрый день, уважаемые форумчане! Помогите пожалуйста реализовать следующие алгоритмы заполнения...

Использование сканера для заполнения двух массивов
После заполнения первого массива, вторую последовательность данный код уже не считывает. Как...


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

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

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