Код разложения числа на слагаемые: Too few arguments to function - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! есть такой код разложения числа на слагаемые.
#include <stdio.h>
 
int a[100];
 
void dec( int g, int n, int k, int i) {
  if ( n < 0 ) return;
  if ( n == 0 ) {
  
    int j;
    for (j = 0; j < i; j++) {
      printf("%d ", a[j]);
    }
    printf("\n");
 
  } else {
    if ( n - k >= 0) {
      a[i] = k; 
      dec(n - k, k, i + 1);
    }
 
    if ( k - 1 > 0) {
      dec(n, k - 1, i);
    }
  }
  return;
}
 
int main() {
  int m, i,t;
  scanf("%d", &m);
  for (i = 0; i <= m; i++) {
    a[i] = 0;
  }t=m;
  dec( m, m, m, 0);
  return 0;
}
проблема в том что при компиляции выскакиевает следующая ошибка: Too few arguments to function...я так понимаю как-то неправильно передаю параметры в функцию...посмотрел темы с такой проблемой..пока не нашел..подскажите пожалуйста что нужно исправить?

Решение задачи: «Код разложения числа на слагаемые: Too few arguments to function»

textual
Листинг программы
} else {
if ( n - k >= 0) {
a[i] = k;
dec(n - k, k, i + 1);//тут 3 а в объявлении 4!
}
}
if ( k - 1 > 0) {
dec(n, k - 1, i);//и тут 3 
}
}
return;
}

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

Список элементов:

  1. В данном коде реализуется рекурсивный алгоритм разложения числа на слагаемые.
  2. Если число n меньше или равно k, то в массив a записывается k, а функция вызывается рекурсивно с уменьшенным числом n и уменьшенным значением k.
  3. Если число n больше k, то в массив a записывается k, а функция вызывается рекурсивно с уменьшенным числом n и уменьшенным значением k.
  4. Если число k меньше или равно 0, то в массив a записывается 0, а функция вызывается рекурсивно с уменьшенным числом n и уменьшенным значением k.
  5. Если число k больше 0, то в массив a записывается k, а функция вызывается рекурсивно с уменьшенным числом n и уменьшенным значением k.

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


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

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

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