Ошибка: Аргумент типа void не завершён - C (СИ)
Формулировка задачи:
#include <stdio.h>
void swap (int *a, int *b) {
int x;
x=*a;
*a=*b;
*b=x;
}
void p (int n)
{ int i;
char A[n];
if(n==1){
}
for(i=0;i<n;i++){
swap(&A[n-1], &A[n-1-i]);
p(n-1);
swap(&A[n-1], &A[n-1-i]);
}
}
int main()
{
int s, d;
printf ("Введите число \n");
scanf("%d", s);
printf ("Результат: %d", p(s));
return 0;
}Решение задачи: «Ошибка: Аргумент типа void не завершён»
textual
Листинг программы
#include <iostream>
#include <algorithm>
int main()
{
int arr[] = { 1, 2, 3, 4, 5 };
size_t len = sizeof(arr) / sizeof(int);
do
{
for (int i = 0; i < len; i++)
std::cout << arr[i] << " ";
std::cout << std::endl;
} while (std::next_permutation (arr, arr + len));
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлен массив целых чисел
arrи переменнаяlen, которая содержит размер массива. - В цикле
do-whileвыводится текущая последовательность элементов массива на экран. - С помощью функции
std::next_permutationизменяется порядок элементов в массиве, и операция повторяется до тех пор, пока не будет получена следующая перестановка. - Функция
std::next_permutationвозвращает итератор к первому элементу, который был изменен в текущей перестановке. - При каждой итерации цикла
do-whileна экран выводится текущая последовательность элементов массива. - В конце программы возвращается 0, что означает успешный конец работы программы.