Мне нужна помощь с одной проблемой в C. У меня есть два числа. Сначала это «числовая строка» (я представляю ее в строке), мне нужно разбить ее на любую комбинацию чисел, сумма которых из них дает мне второе число. Например: 888 24 Мне нужно разбить его на 8 + 8 + 8 Возвращаемое число - это количество + элементов. В примере это ответ 2. Разделить его на каждую цифру легко, но я не знаю, как это сделать в разных случаях.Найти сумму комбинаций чисел из числовой строки в C
1234 46 (12+34)
1234 127 (123+4)
101 2 (1+01)
Когда я не найду какую-либо комбинацию, возвращаемое значение НЕВОЗМОЖНО.
я это к раздельной строке в число, но я не знаю, как применить его успешно:/
long** printComb(char *line, int l, int lp, int r, int rp){
char **vys;
vys = (char**) malloc(2*sizeof(char*));
vys[0] = (char*) malloc(lp*sizeof(char));
vys[1] = (char*) malloc(rp*sizeof(char));
int i;
for(i = 0; i < lp; i++)
vys[0][i] = line[l+i];
vys[0][i] = '\0';
for(i = 0; i < rp; i++)
vys[1][i] = line[r+i];
vys[1][i] = '\0';
return vys;
}
Спасибо за каждый совет :)
Добро пожаловать в переполнение стека! [Пожалуйста, ознакомьтесь с этим обсуждением, почему бы не использовать возвращаемое значение 'malloc()' и family в 'C'.] (Http://stackoverflow.com/q/605845/2173917). –
Обратите внимание, что вы malloc блок размера lp, затем используйте этот указатель для заполнения значений lp + 1. –
Вы возвращаете vys, который является символом 'char **', но имеют тип возврата 'long **' в сигнатуре функции: ** не хорошо ** –