У меня есть следующая функция в C, которая принимает целое число как вход (например, число 1000), разбивает число на отдельные цифры (так 1, 0, 0, 0 в этот случай) и присваивает каждую цифру в массиве называется цифры:C Программирование: функция Loop, которая присваивается массиву
int splitnumber(int x)
{
temp=x;
while(temp)
{
temp=temp/10;
factor = factor*10;
}
while (factor>1)
{
factor = factor/10;
digits[i]= x/factor;
x = x % factor;
i = i + 1;
}
}
Это прекрасно работает в первый раз, но, если я использую его в цикле, это кажется цифры массив не изменяется каждый раз, она по-прежнему держит то же значение, что и в первый раз. То же самое происходит, когда я просто просто пытаюсь снова использовать функцию с новым номером, она все еще зависает от результата с первой попытки. Вот цикл я пытаюсь использовать его в:
do
{
splitnumber(number);
lowhigh = sort_lowtohigh(digits);
highlow = sort_hightolow(digits);
printf ("\n\nLoop number is:%d\n", number);
printf ("High to Low is: %d\n", highlow);
printf ("Low to high is: %d", lowhigh);
printf("\n");
printf ("Subtraction is: %d", subtraction(highlow, lowhigh));
number++;
} while (number <= 1020);
Как вы можете видеть, я использую несколько других функций, которые использует цифры массива. Эти функции, похоже, работают нормально, но не производят правильный результат во второй раз через цикл, поскольку массив цифр не изменяется. Вот вывод:
Loop number is:1001 High to Low is: 1100 Low to high is: 11 Subtraction is: 1089 Loop number is:1002 High to Low is: 1100 Low to high is: 11 Subtraction is: 1089 Loop number is:1003 High to Low is: 1100 Low to high is: 11 Subtraction is: 1089
Цикла приращение счетчика номеров, но, опять же, цифры массив не обновляются.
Где объявлен массив цифр? И где он очищается? – Mike
Где инициализируются 'factor' и' i'? Всегда указывайте ** действующий код **, который вы запускаете, включая все декларации/определения. –