我想将123456之类的数字放入数字数组中。能否请你给我一个提示?我可以定义一个元素数量未知的数组吗?
答案 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.继续这样做,直到排出数字中的所有数字。