如何将整数放到数字数组中

时间:2013-09-09 04:53:57

标签: c

我想将123456之类的数字放入数字数组中。能否请你给我一个提示?我可以定义一个元素数量未知的数组吗?

5 个答案:

答案 0 :(得分:7)

首先计算数字

int count = 0;
int n = number;

while (n != 0)
{
    n /= 10;
    cout++;
}

不初始化数组并指定大小:

if(count!=0){
   int numberArray[count];

   count = 0;    
   n = number;

   while (n != 0){
       numberArray[count] = n % 10;
       n /= 10;
       count++;
   }
}

答案 1 :(得分:2)

如果您不介意使用char作为数组元素类型,可以使用snprintf()

char digits[32];
snprintf(digits, sizeof(digits), "%d", number);

每个数字将表示为字符值'0'尽管'9'。要获取整数值,请将字符值减去'0'

int digit_value = digits[x] - '0';

答案 2 :(得分:0)

int x[6];
int n=123456;
int i=0;
while(n>0){
   x[i]=n%10;
   n=n/10;
   i++;
}

答案 3 :(得分:0)

“我可以定义一个元素数量未知的数组吗?”

如果数字太大,您可以将其输入为字符串,然后相应地从中提取数字

如下所示:

char buf[128];
int *array;
//fscanf(stdin,"%s",buf);

array = malloc(strlen(buf) * sizeof(int)); //Allocate Memory
int i=0;
do{
 array[i] = buf[i]-'0'; //get the number from ASCII subtract 48
 }while(buf[++i]); // Loop till last but one 

答案 4 :(得分:-1)

这是一些步骤。首先,获取存储数字中所有数字所需的大小 - 执行数组的malloc。接下来,取数字的mod,然后将数字除以10.继续这样做,直到排出数字中的所有数字。