如何将整数放到数字数组

我想把一个像123456这样的数字放到一个数字数组中。 能否请你给我一个提示? 我可以定义一个元素数量未知的数组吗?

首先计算数字的数量

 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++; } } 

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

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

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

 int digit_value = digits[x] - '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 
 int x[6]; int n=123456; int i=0; while(n>0){ x[i]=n%10; n=n/10; i++; } 

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