如何提取一个数的指定位数
C语言如何写一个提取一个数的个位、十位、百位的程序? 本帖最后由 jackz007 于 2022-3-10 19:09 编辑#include <stdio.h>
int foo(int d[] , int n , int c)
{
int r ;
r = c ;
if(n) {
r = foo(d , n / 10 , c + 1) ;
d = n % 10 ;
}
return r ;
}
int main(void)
{
int d , n , m ;
printf("请输入一个数字 : ") ;
scanf("%d" , & n) ;
m = foo(d , n , 0) ;
printf("数字 %d 的百十个位数依次为 : %d , %d , %d\n" , n , d , d , d) ;
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
请输入一个数字 : 135246
数字 135246 的百十个位数依次为 : 2 , 4 , 6
D:\\C> #include <stdio.h>
int main(){
int a, b, c, num = 758;
a = num/100; // 百位数
b = num/10%10; // 十位数
c = num%10; // 个位数
printf("%d, %d, %d", a, b, c);
return 0;
} 本帖最后由 jhq999 于 2022-3-10 17:05 编辑
int num=47343222;
if(num)for(;num;num/=10)printf("%d ",num%10);
else printf{"0"); #include <stdio.h>
int unit(int num) { return num % 10; }
int ten(int num) { return num / 10 % 10; }
int hundred(int num) { return num / 100 % 10; }
int extract(int num, int(*f)(int)) {
return f(num);
}
int main()
{
int num = 12345678;
// 提取一个数的指定位数
printf("%d\n", extract(num, unit)); // 个位数
printf("%d\n", extract(num, ten)); // 十位数
printf("%d\n", extract(num, hundred)); // 百位数
return 0;
} 本帖最后由 jhq999 于 2022-3-10 20:57 编辑
int num=47343222,digit=9;
if(num&&digit>0)
{
for(digit--;num;num/=10,digit--){if(!digit)printf("%d ",num%10),num=0;}
if(digit>-1)printf("位数超过");
}
else printf("0");
页:
[1]