如何用C语言拆分整数?

如何用C语言拆分整数?,第1张

将一个整数的各个位分离出来的最简单方法就是模10,取个位数,直到该变为0。

参考代码:

#include <stdio.h>

void main()

{

int n=0

scanf("%d", &n )

do {

printf("%d\n", n%10 )//每次输出个位

n/=10 //缩小10倍,去除原来的个位。

}while(n)

}

但这整拆分的特点是从后向前输出每一位数。

如果仅是为了输出,还想正向输出每一位数,则可用递归函数来解决。(也可以实现逆向输出)

参考代码:

#include <stdio.h>

void split_int( int n )

{

if ( n>0 )

{

//printf("%d\n", n%10 )//逆向输出,放开这里,关闭下面的printf().即:先输出当前个位,再去高位的数

split_int( n/10 )//先去输出高位的数

printf("%d\n", n%10 )//再输出当前的个位数

}

}

void main()

{

int n

scanf("%d", &n)

split_int(n)

}

如果想把分离开的数据存储到数组中,则最简单的方法是将整数用sprintf()存储到字符数组中,然后,遍历数组,逐位取出。

参考代码:

#include <stdio.h>

void main()

{

int n,i

char str[20]

scanf("%d", &n)

sprintf(str,"%d", n)

for( i=0str[i]i++ ) //正向输出

printf("%c\n", str[i] )

for( i--i>=0i-- ) //逆向输出

printf("%c\n", str[i] )

}

c语言判断两数相除结果是否为整数可采用模运算。

%是C语言提供的“模运算”符,如8%5表示8整除5,取其余数,结果为3

C语言要求参与模运算符两端的数,必须是整型类数据,如:char short int long, unsigned这些类型,不能是浮点类型数据。

如,判断一个数除以100后是不是整数,(该数是不是100的整数倍,或该数能否整除100),C判断语句可写成:

int x

scanf("%d", &x )

if ( x%100 ==0 )

    printf("%d是100的倍数\n",x)

else

    printf("%d不是100的倍数\n",x)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12132335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存