如何将数字读取为数字中的单个数字?
int main() {
long long int num1;
printf("enter number: ");
scanf("%lld", &num1);
例如,如果用户输入是123456789,我如何将4用作单个数字?
答案 0 :(得分:4)
因为问题中的scanf()
调用使用了%lld
说明符,它解释了十进制的输入,我们可以假设你想要十进制的数字。假设数字是正数:
100000
。这给出了1234.如果要检索可变数字,可以使用重复除以10将正确的数字移动到该位置,如Ashiquzzaman's answer所示。如果你想要左边的数字,首先要计算数字中的数字:除以10,直到商为零。%
从除法中提取余数10.这得到4。如果数字为负数,division in C rounds toward zero。这意味着-123456789
将在第一步后生成-1234
,在第二步后生成-4
。
答案 1 :(得分:1)
您可以将输入作为long long int
,然后提取数字,如下所示:
#include <stdio.h>
#include<math.h>
int getDigit(long long number, int idx)
{
number = abs(number);
while(idx--)
number/=10;
return number%10;
}
int main()
{
long long int num1;
int indexOfDigit = 4;
printf("enter number: ");
scanf("%lld", &num1);
printf("%d\n", getDigit(num1, indexOfDigit));
}
示例输入:123456789
示例输出:5
有关说明,请参阅answer
的tepples答案 2 :(得分:0)
将其作为一系列字符读取(基本上就像它是一个字符串一样),在循环中使用scanf中的%c直到读取EOF
int main()
{
int digit;
printf("enter number: ");
digit = getchar();
while (digit != EOF)
{
/* Process digit */
digit = getchar();
}
}
答案 3 :(得分:0)
您可以将输入存储为char *并使用char [3]访问第四位数字?