参考代码:
#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 xscanf("%d", &x )
if ( x%100 ==0 )
printf("%d是100的倍数\n",x)
else
printf("%d不是100的倍数\n",x)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)