是否可以使用scanf检索整数并将每个数字分配给一个int数组?
我正试图通过这种方式实现它:
int numbers[];
puts("Enter number");
int x;
scanf("%d",x);
numbers = malloc(x);
numbers = x;
答案 0 :(得分:1)
两个快速技巧:
整数到字符串:
int N;
char buf[10];
scanf("%d",&N);
sprintf(buf,"%d",N);
整数到数组:
int N,i,
buf[10],
Dig;
scanf("%d",&N);
Dig = log10(N);
for(i = Dig; N ; i--){
buf[i] = N % 10;
N /= 10;
}
答案 1 :(得分:0)
您可以将其作为字符串%s读入char数组。
此时,您将每个数字都放在一个字符中。
char只是一个int值。因此,您可以在此之后将任何转换应用于您读入的角色。
您可以将每个char数字转换为其int值,然后您可以迭代字符串中的每个char并执行以下操作:
myInts[i] = charBuffer[i] - '0'; /* where i = 0.. string length -1 */
答案 2 :(得分:0)
不奇怪,你需要读取int并自己分解数字,或者将其作为字符串读取,以便你可以单独访问每个字符
答案 3 :(得分:0)
其他人对你想要的东西有很好的答案,只想指出你的代码到底在做什么---
numbers = malloc(x);
在这里,您已经读入了用户的输入并在堆上分配了一个x字节数组。数字指向那个记忆。这是你到达那个阵列的唯一方法。
numbers = x;
然后你已经为整数x分配了数字。您现在已经忘记了malloc分配的内存,无法使用free()删除它。