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

Выведение всех перестановок - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Mee
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
05.07.2010, 12:33     Выведение всех перестановок #1
Драсте, я вот все время писал на паскале и мне с трудом дается переход на c++. Не могу сделать и простых вещей, просто не разбираюсь в синтаксисе.
Вот например есть задача: вывести все перестановки чисел от 1 до 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
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include <cstdlib> 
using namespace std;
void swap( int i, int j, int a[])
{
    int temp=0;
    temp=a[i];
    a[i]=a[j];
    a[j]=temp;
}
void generate(int l, int r, int a[])
{
    int i;
    if (l==r)
        for ( i=0; i<r; i++)
            cout >> a[i];
    else 
        for (i=l; i<=r; i++)
              {
                  swap(l,i,a[]);
                  generate(l+1,r,a[]);
                  swap(i,l,a[]);
              }
}
int main()
{
  const int lmax=100;
  int length;
  cout <<"Input the number" << endl;
  cin >> length; 
  int a[lmax];
  for (int i=0; i<length; i++)
      a[i]=i+1;
 generate(1,length,a);
    return 0;
    cin.get();
}
Добавлено через 23 минуты
Ошибку с выведение в 17-18 строчке то можно исправить, заменив на что-то вроде
C++
1
printf("%.rs", a);
но все равно хотелось бы знать что там не так.

Обьясните мне как в функцию на вход правильно задать массив.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
buugman
 Аватар для buugman
16 / 16 / 2
Регистрация: 04.07.2010
Сообщений: 51
05.07.2010, 12:43     Выведение всех перестановок #2
В 18 строке смотри внимательнее у тебя вместо cout >> должно быть написано cout <<
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
05.07.2010, 12:45     Выведение всех перестановок #3
cout нужно использовать так:
C++
1
cout << a [i]
, а cin
C++
1
cin >> a [i]
В строках 22-24 в функцию нужно передавать не a.
Mee
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
05.07.2010, 13:08  [ТС]     Выведение всех перестановок #4
Понял, не a[], а просто а, спасибо
Yandex
Объявления
05.07.2010, 13:08     Выведение всех перестановок
Ответ Создать тему
Опции темы

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