要求
用户输入一个整数,将这整数各个位拆开。
代码实现1
利用求余运算
/*拆分数字的各个位*/
#include <stdio.h>
/*函数声明*/
void dig_split(int result[],int num); //数字拆分
void my_printf(int result[],int count); //打印结果值
/*全局变量*/
static int count = 0; //输入数字的位数,方便打印
int main()
{
int num;
int result[10]; //存放结果值
printf("请输入一个整数:");
scanf("%d",&num);
dig_split(result,num);
my_printf(result,count);
return 0;
}
/*函数定义*/
void dig_split(int result[],int num)
{
int i = 0;
//分别取出各个位的数值
for(i=0;num!=0;i++)
{
result[i] = num % 10;//第一次取出的是个位
num /= 10;
count++; //位数+1
}
}
void my_printf(int result[],int count)
{
int i = 0;
for(i=0;i<count;i++)
{
printf("%d ",result[i]);
}
printf("\n");
}
程序运行结果
代码实现2
利用scanf("%1d",&arr[i])按位读入;
#include <stdio.h>
#define BITS 3
int main()
{
int arr[BITS],i;
printf("请输入一个3位数:");
for(i=0;i<BITS;i++)
{
scanf("%1d",&arr[i]);
}
for(i=0;i<BITS;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
运行结果
代码实现3
利用gets()函数读取字符串
#include <stdio.h>
int main()
{
int i = 0,count = 0;
char arr[64];
int arr2[64];
printf("请输入一个整数:");
gets(arr);
for(i=0;arr[i]!='\0';i++)
{
arr2[i] = arr[i]-48; //‘0’的ASCII值为48
count++;
}
for(i=0;i<count;i++)
{
printf("%d ",arr2[i]);
}
printf("\n");
return 0;
}
运行结果