我在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