Ошибка: Аргумент типа 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;
}
24 строчку компилятор не принимает и не хочет компилировать. Пишет что аргумент типа void не завершён

Решение задачи: «Ошибка: Аргумент типа 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлен массив целых чисел arr и переменная len, которая содержит размер массива.
  2. В цикле do-while выводится текущая последовательность элементов массива на экран.
  3. С помощью функции std::next_permutation изменяется порядок элементов в массиве, и операция повторяется до тех пор, пока не будет получена следующая перестановка.
  4. Функция std::next_permutation возвращает итератор к первому элементу, который был изменен в текущей перестановке.
  5. При каждой итерации цикла do-while на экран выводится текущая последовательность элементов массива.
  6. В конце программы возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы