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

Сформировать массив по заданному правилу - C++

Восстановить пароль Регистрация
 
Docer25
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 9
24.07.2015, 15:51     Сформировать массив по заданному правилу #1
Напишите программу, которая создает двухмерный массив и заполняет его по следующему принципу: пользователь вводит число (например, 3) первый элемент массива принимает значение этого числа, последующий элемент массива принимает значение этого числа умноженного на 2 (т.е. 6 для нашего примера), третий элемент массива предыдущий элемент умноженный на 2 (т.е. 6*2=12 для нашего примера). Созданный массив вывести на экран.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ClassTerr
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 12
24.07.2015, 15:58     Сформировать массив по заданному правилу #2
Я так понял, что нужно вывести всего 3 числа, потому что не сказано про размерность массива.
То есть:
C++
1
cout << n << " " << n * 2 << " " << n * 4;
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,205
Завершенные тесты: 1
24.07.2015, 15:58     Сформировать массив по заданному правилу #3
Берем образец
Образцы (шаблоны) программ для типовых задач
И в нем меняем функцию Input
C++
1
2
3
4
5
6
7
8
// ввод массива
void Input(int* M,int n)
{
    cout<<"M[0]=?";
    cin >> M[0];
    for(int i=1;i<n;i++)
       M[i]=m[i-1]*2;
}
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
24.07.2015, 16:00     Сформировать массив по заданному правилу #4
C++
1
2
3
4
std::cin >> num;
*array = num;
for(int i = 1; i < N * N; ++i)
    *(array + i) = *(array + i - 1) * 2;
Docer25
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 9
24.07.2015, 16:25  [ТС]     Сформировать массив по заданному правилу #5
Всем спасибки)) Я только учусь и весь день голову ломаю: "Как же сделать)))"

Добавлено через 18 минут
А если он двумерный, размер допустим Array [m][n]
Krasiosoft
 Аватар для Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
24.07.2015, 22:07     Сформировать массив по заданному правилу #6
Если двумерный, тогда так:
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    int num,rows,cols;
 
    cout <<"Number = ";
    cin >> num;
    cout <<"Rows = ";
    cin >> rows;
    cout <<"Cols = ";
    cin >> cols;
 
    int** matrix = new int*[rows];
    for (int i = 0; i < rows; i++){
 
        matrix[i]= new int[cols];
        for (int j = 0; j < cols; j++){
            matrix[i][j] = num;
            num*=2;
        }
    }
 
    cout << "Matrix: " << endl;
    for (int i = 0; i < rows; i++){
        for (int j = 0; j < cols; j++) cout << setw(7) << matrix[i][j] << ' ';
        cout << endl;
    }
 
    for(int i = 0; i < rows; i++){
        delete[] matrix[i];
    }
    delete[] matrix;
 
 
    return 0;
}
Docer25
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 9
24.07.2015, 23:07  [ТС]     Сформировать массив по заданному правилу #7
За такую помощь Уважуха, спасибо!
matveev1512
9 / 9 / 5
Регистрация: 29.05.2016
Сообщений: 65
21.06.2016, 11:04     Сформировать массив по заданному правилу #8
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < n; i++){
    for (int j = 1; j < m; j++){
     mass[i][j] = mass[i][j-1] * 2;     
     cout << setw(4) << mass[i][j-1];
    }
    if (i<m-m) mass[i+1][m-3] = mass[i][m-1] * 2;
    cout << setw(4)<<mass[i][m-1]<< endl;
   }
Добавлено через 52 секунды
C++
1
2
3
4
5
6
7
8
9
for (int i = 1; i < n*m; i++){
    mass[0][i] = mass[0][i - 1] * 2;
   }
   for (int i = 0; i < n; i++){
    for (int j = 0; j < m; j++){
     cout << setw(4) << mass[i][j];
    }
    cout << endl;
   }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2016, 11:19     Сформировать массив по заданному правилу
Еще ссылки по теме:

Сформировать новый массив С из элементов массивов А и В по правилу C++
C++ Сформировать массив по определенному правилу
Сформировать двумерный массив по правилу C++

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

Или воспользуйтесь поиском по форуму:
1Вирт1
55 / 53 / 5
Регистрация: 25.08.2011
Сообщений: 428
21.06.2016, 11:19     Сформировать массив по заданному правилу #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
 
int main() {
    std::vector<int> vec(10);
    vec[0] = 1;
    std::generate(vec.begin() + 1, vec.end(), [&vec]()->int
    {
    static int pos = 1;
    auto val = vec[pos - 1] * 2;
    ++pos;
    return val;
    });
    std::copy(vec.begin(), vec.end(), ostream_iterator<int> (cout, " "));
    return 0;
}
Yandex
Объявления
21.06.2016, 11:19     Сформировать массив по заданному правилу
Ответ Создать тему
Опции темы

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