用c语言如何表示出一个数的个位,百位,十位

Python011

用c语言如何表示出一个数的个位,百位,十位,第1张

如果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

}