2011-02-10 83 views

回答

6

您可以通過使用整數除法和模數來獲得數字的小數位數。

//Pseudo code 
int[MAX_SIZE] result; 
int index = 0; 
while (workingNumber > 0) 
{ 
    digit = workingNumber % 10; 
    result[index] = digit; 
    workingNumber = workingNumber/10; //Must be integer division 
    index++; 
} 
+1

注意,對於給定的例子,數字將是{3,2,1}在數組中,即你需要扭轉它來獲取問什麼OP。 – 2011-06-14 21:34:21

1

首先,請記住,在C「字符數組」和「串」之間的唯一真正的區別是一個字符串,你把一個NUL,終止在字符數組的結束。

假設您想要(例如)創建一個int數組(或long或char以外的其他數組),通常在除以10之後取其餘部分,並將其轉換爲數字,方法是將0 」。然後將數字除以10並重復,直到它減少到零。這會使數字從最小到最重要,因此您通常會將它們存放在數組的末尾,並朝着開始的方向前進。

3
#include <math.h> 

... 

int number = 5841; 
int size = log10(number) + 1; 
int arr[size]; 
int i = size; 
while(i >= 0) 
{ 
    arr[--i] = number % 10; 
    number /= 10; 
} 
1
#include <stdio.h> 
#include <math.h> 

#define LEN 3 

int main(int argc,char* argv[]) 
{ 
    int i = 123; 
    int a[LEN]; 
    int digit; 
    int idx = log10(i); 

    do { 
    digit = i % 10; 
    i /= 10; 
    a[idx--] = digit; 
    } while (i != 0); 

    printf("a: { %d, %d, %d }\n", a[0], a[1], a[2]); 

    return 0; 
} 
相關問題