我在C中有一个以整数作为输入的函数(例如数字1000),将数字拆分为单个数字(所以1,0,0,0,0这种情况下),并且每个数字对阵列称为数字:C编程:分配给数组的循环函数
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
该循环正在递增数字计数器,但是,数字数组又没有被更新。
“digits”数组声明在哪里?它在哪里清除? – Mike 2013-03-14 18:01:13
“因子”和“我”初始化在哪里?请始终发布您运行的**实际代码**,包括所有声明/定义。 – 2013-03-14 18:13:44