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

Полный перебор чисел массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождение значения выражения для n корней http://www.cyberforum.ru/cpp-beginners/thread1050485.html
Нахождение значения выражения для n корней. (с использованием рекурсии)
C++ нужно что бы выводило количество каждой буквы и строки #include <string> #include <iostream> int main() { std::string vowel = "AaEeIiOoUuYy"; std::string str; std::cout << "Enter string" << std::endl; std::cin >> str; http://www.cyberforum.ru/cpp-beginners/thread1050480.html
C++ какой из N треугольников, заданных координатами своих вершин, имеет больший периметр?
какой из N треугольников, заданных координатами своих вершин, имеет больший периметр?
Перевернуть строки в матрице C++
Дан двумерный массив A размера mXn. Перевернуть каждую его третью строку.
C++ Задача http://www.cyberforum.ru/cpp-beginners/thread1050470.html
Рекомендации к задаче: 1. Имя файла задавать в командной строке. Если оно там не был задан, то после соответствующего запроса имя вводится пользователем. 2. Использовать динамическое выделение памяти (размер массива задается пользователем после соответствующего запроа). Оссвобождать память, выделенную под динамические переменные, ОБЯЗАТЕЛЬНО. Сама задача: Есть информация о деталь:...
C++ файлы в С file=fopen("file.txt","r"); for(i=0;;i++) {do {n=fgetc(file); printf("%c",n); } while (n!=EOF); break;} fclose (file); подробнее

Показать сообщение отдельно
Roodey
4 / 4 / 1
Регистрация: 23.05.2013
Сообщений: 36
21.12.2013, 04:13     Полный перебор чисел массива
Доброго вам времени суток.
Количество элементов массива задавать вручную - собственно N.
Массив заполняется числами от 1 до N.
Стоит задача, выполнить полный перебор массива чисел с первым элементов равным 1.

То есть:
Задаем массив из, допустим, 4 элементов, на выходе должны получить:
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2

Если массив из 5 элементов, чисел и итераций будет соответственно больше, а именно 24.
А из 3 элементов получим всего 2.
1 2 3
1 3 2

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 fact=1, f;
int n, i, j;
void factorial(int f)
{
        for(i=0; i<n-1; i++)
        {
            fact=fact*f;
            f=f-1;
        }
    cout<<endl<<"факториал = "<<fact<<endl;
}
 
int main()
{
    cout<<"введите n: ";
    cin>>n;
 
    f=n;
    factorial(f);
 
    int i1;
    i1=fact/n;
 
    cout<<"количество итераций = "<<i1<<endl<<endl;
 
    int a[n];
    for(i=1; i<=i1; i++)
    {
 
        for(j=1; j<=n; j++)
        {
            a[j]=j;     //просто для примера, должно быть что-то другое
            cout<<a[j];
        }
        cout<<endl;
    }
}
Проблема заключается в том что не могу придумать как именно сделать этот перебор...
И потому на выходе пока получаю:
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

Надеюсь на вашу помощь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru