如果n是个多位十进制数,那么n%10是个位数字,n/10%10是十位数字,n/100%10是百位数字,依此类推。
设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10
代码如下:
#include<stdio.h>
int main(){
int n = 123456
int unitPlace = n / 1 % 10
int tenPlace = n / 10 % 10
int hundredPlace = n / 100 % 10
int thousandPlace = n / 1000 % 10
printf("个位:%d\n十位:%d\n百位:%d\n千位:%d\n", unitPlace, tenPlace, hundredPlace, thousandPlace)
getchar()
return 0
}
扩展资料:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
参考资料来源:百度百科-c语言
要输出整型数值的每一位数字,关键在于将每一个数字提取出来。
方法有很多,实现方式更是多种多样,以最常见的两种方式举例说明:
一、传统方法,通过除法和模除,取出每一位,并输出。
参考代码如下:
#include<stdio.h>void output(int n)
{
int a[10]
int l=0
/*
循环获取每一位的值,并存到数组a中。
其中l表示已经获取到的位数。
由于每次获取的是个位n%10,所以存在数组a中的是各个位数的逆序。
*/
while(n)
{
a[l++] = n%10
n/=10
}
//反序输出每一位值。
while(--l>=0)
printf("%d ", a[l])
}
int main()
{
int n
scanf("%d",&n)//输入n值。
output(n)//输出各个位。
return 0
}
二、转为字符串,然后输出字符串各个字符。
由于在C语言中,有很多库函数,比如itoa, sprintf等,都可以很方便的将整数转为字符串,而逐位输出字符串各个字节值是很简单的,所以可以通过转为字符串,再输出的方式输出各个位的值。
参考代码:
#include<stdio.h>void output(int n)
{
char a[11]
int i
sprintf(a, "%d", n)//转为字符串。
for(i = 0 a[i] i++)//遍历字符串。
printf("%c ", a[i])//输出各个位值。
}
int main()
{
int n
scanf("%d",&n)//输入n值。
output(n)//输出各个位。
return 0
}