我在 C 中有以下函数,它以整数作为输入(例如,数字 1000),将数字拆分为单个数字(在这种情况下为 1、0、0、0)并将每个数字分配给一个称为数字的数组:
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);
如您所见,我还使用了其他几个使用数字数组的函数。这些函数似乎工作正常,但在第二次循环中没有产生正确的结果,因为数字数组没有改变。这是输出:
循环数为:1001 从高到低是:1100 从低到高是:11 减法为:1089 循环数为:1002 从高到低是:1100 从低到高是:11 减法为:1089 循环数为:1003 从高到低是:1100 从低到高是:11 减法为:1089
循环正在增加数字计数器,但再次,数字数组没有被更新。