Код разложения числа на слагаемые: Too few arguments to function - C (СИ)
Формулировка задачи:
Здравствуйте! есть такой код разложения числа на слагаемые.
проблема в том что при компиляции выскакиевает следующая ошибка: Too few arguments to function...я так понимаю как-то неправильно передаю параметры в функцию...посмотрел темы с такой проблемой..пока не нашел..подскажите пожалуйста что нужно исправить?
#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»
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; }
Объяснение кода листинга программы
Список элементов:
- В данном коде реализуется рекурсивный алгоритм разложения числа на слагаемые.
- Если число
n
меньше или равноk
, то в массивa
записываетсяk
, а функция вызывается рекурсивно с уменьшенным числомn
и уменьшенным значениемk
. - Если число
n
большеk
, то в массивa
записываетсяk
, а функция вызывается рекурсивно с уменьшенным числомn
и уменьшенным значениемk
. - Если число
k
меньше или равно 0, то в массивa
записывается 0, а функция вызывается рекурсивно с уменьшенным числомn
и уменьшенным значениемk
. - Если число
k
больше 0, то в массивa
записываетсяk
, а функция вызывается рекурсивно с уменьшенным числомn
и уменьшенным значениемk
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д