我已经看到以下代码工作:
int d1, d2, d3, d4, d5;
printf("Enter group of five digits: ");
scanf("%1d%1d%1d%1d%1d", &d1, &d2, &d3, &d4, &d5);
但以下代码失败:
int ar[5], counter = 0;
printf("Enter number: ");
while(counter < 5){
scanf("%1d", &ar[counter]);
counter++;
}
失败代码中的数字都是32767
. 为什么是这样?
编辑:我刚刚在这里给出了一个代码片段。我正在尝试 KNKing 的 C Programming: A Modern Approach 中的练习题
我看到第二个代码片段通过一一打印出数组内容而失败。
在这里看到很多负面的回应,没有任何解释我应该如何构建我的问题根本没有帮助。另外,我确信有其他方法可以解决这个问题,但我只是问为什么第二个代码片段在第一种情况下失败。
编辑 2:作为输入,我输入一个 5 位数字,然后输入键:比如 12345\n。在第一个片段中,1 存储在 d1 中,2 存储在 d2 中,依此类推。
在第二个代码片段中,ar[0] 是 32767 而不是 1,依此类推。所以它失败了。