#include <stdio.h>
int main(int argc, char *argv[]) {
int n = 234;
// Gets first digit
int digit = n / 100;
putchar('0' + digit);
// gets 3rd digit
digit = n % 10;
putchar('0' + digit);
}
我怎样才能获得“3”又名第2位?
此外,如果n为像245836我怎么能提取由一个每个数字吗?
您可以通过除以10,然后十取所得的余数做到这一点:
int second = (number / 10) % 10;
在一般情况下,你可以以10的k
次方认为整数除以作为下探k
至少显著数字的。通过十k
次方以一个部门的其余部分等同于保持最后k
数字。
我怎么能提取由一个每个数字吗?
你可以采取与%10
最后一个数字,然后通过/= 10
下探该位关底。
正如你已经得到了答案扩展:在一般情况下,你可以从右边的i
th数字:
int digit = (n / pow(10, i - 1)) % 10;
你可以得到与i = log10(n)
和循环用自己的方式的位数下降到0。pow
和log10
是浮点功能。
或者,你可以在10的权力在降低通过连续师阶由初始值d
,这也必须是10的功率可以用10乘以重复1,直到下一次乘法找到这个值d
的10送会超出你的电话号码。
这里有一个简单的程序,打印一个正整数的所有数字依次是:
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int n = 0;
unsigned int d = 1;
while (d <= n / 10) d *= 10;
while (d) {
unsigned int digit = (n / d) % 10;
putchar('0' + digit);
d /= 10;
}
putchar('\n');
return 0;
}
本例使用unsigned int
,因为它仅适用于非负数。
这是一个简单的程序在第十名的位置打印数字。
import java.util.*;
public class Main{
public static void main(String []args){
int n;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
if(n>0)
{
n=n%100;
n=n/10;
}
System.out.println(n);
}
}