gpt4 book ai didi

c - 读取一个整数,一次一位数

转载 作者:行者123 更新时间:2023-11-30 19:34:58 25 4
gpt4 key购买 nike

我已经看到以下代码有效:

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 位数字,然后按 Enter 键:例如 12345\n。第一个片段中,1 存储在 d1 中,2 存储在 d2 中,依此类推。

在第二个代码片段中,ar[0] 是 32767 而不是 1 等等。所以失败了。

最佳答案

试试这个:

#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();
}

关于c - 读取一个整数,一次一位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43185367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com