我看到以下代码有效:
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
。这是为什么?
编辑:我刚刚给出了一个代码片段。我正在尝试K.N.King的C编程:一种现代方法中的运动问题
我看到第二个代码片段因逐个打印出数组内容而失败。
在这里看到很多负面回答,没有任何解释我应该如何构建我的问题根本没有帮助。此外,我确信有其他方法,但我只是问为什么第二个代码片段在第一种情况下失败。
编辑2:作为输入我输入一个5位数字,然后输入密钥:比如12345 \ n。在第一个片段中,1存储在d1中,2存储在d2中,依此类推。
在第二个代码片段中,ar [0]是32767而不是1,依此类推。所以它失败了。
答案 0 :(得分:0)
试试这个:
#include <stdio.h>
#include <conio.h>
int main(int argc, char *argv[]) {
printf("Enter group of five digits: ");
char number[5];
scanf("%s", &number);
int digits[5];
for (int i = 0; i < 5; i++) {
digits[i] = number[i] - '0';
}
printf("d1=%d d2=%d d3=%d d4=%d d5=%d", digits[0], digits[1], digits[2],
digits[3], digits[4]);
getch();
}