c语言中,输入一个其值不大于32767的正整数,将各位数字分离出来,依次显示

如题所述

第1个回答  2012-10-27
void int_to_char(short unsigned int num,unsigned char *p) //把短整型数据转化为字符串
{
uchar i=0;
suint a=10000;
do
{
*p=num/a+48;
num=num-(suint)(num/a)*a;
a=a/10;
i++;
}while((*p==48)&&(i<4));//等待第一个非零位
if((*p!=48)||(i<4)) p++;
for(;i<4;i++)
{
*p=num/a+48;
num=num-(suint)(num/a)*a;
a=a/10;
p++;
}
*p=num+48;
p++;
*p='\0';//最后补零
}
调用这条函数把短整形,变为字符串,
然后printf("%s",p);显示字符串就行追问

完全调试不出来

追答

void int_to_char(short unsigned int num,char *p) //把短整型数据转化为字符串
{
unsigned char i=0;
short unsigned int a=10000;
do
{
*p=num/a+48;
num=num-(short unsigned int)(num/a)*a;
a=a/10;
i++;
}while((*p==48)&&(i<4));//等待第一个非零位
if((*p!=48)||(i<4)) p++;
for(;i<4;i++)
{
*p=num/a+48;
num=num-(short unsigned int)(num/a)*a;
a=a/10;
p++;
}
*p=num+48;
p++;
*p='\0';//最后补零
}

不好意思,我把宏定义的都删了,现在应该可以,不行请追问

第2个回答  2012-10-27
1.bit = sum % 10; sum /= 10;

2.scanf("%[1-9]",str); for(i - strlen(str)) printf("%c ",str[i]);追问

我是初学的,所以看不懂,而且请给予标准格式,谢谢

追答

首先过程在这,其次这么点东西直接给代码就不好了是吧,你总得有个动手的过程。
虽然我觉得也跟直接给代码无异了

1.
输入 sum
while(sum != 0){
输出 sum%10; //向10求余获取位数

sum /= 10; //自除10除去最低位
}

2.
输入 sum 以字符串的形式
用库函数strlen获取字符串长度,当然你也可以
while( sum[i] != '\0')
输出sum[i];

追问

诶,你写的很好,可是我等级太低,怎么都调试不成功,算咯,懒得做题咯

第3个回答  2012-10-27
350439756 的答案挺好的。。
第4个回答  2012-10-27
#include <stdio.h>
int main()
{
int digit;

printf("input a digit:");
scanf("%d",&digit);

while(digit)
{
printf(" %d\n",digit%10);
digit/=10;
}
return 0;
}本回答被提问者和网友采纳
第5个回答  2012-10-27
#include <stdio.h>
int main(void)
{
unsigned short number;
unsigned short sub_num[5];
int count = 0;
scanf("%d", &number);
while(number)
{
sub_num[count++] = number % 10;
number /= 10;
}
while(count)
{
printf("%d", sub_num[count-1]);
--count;
}
return 0;
}

这里只是简单的给了个例子,按原来的顺序输出的,建议最后以函数的形式来表现这个功能追问

不对,输出还是32767,中间应该有逗号隔开的,,,,

追答

#include
int main(void)
{
unsigned short number;
unsigned short sub_num[5];
int count = 0;
scanf("%d", &number);
while(number)
{
sub_num[count++] = number % 10;
number /= 10;
}
while(count)
{
printf("%d,", sub_num[count-1]);
--count;
}
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网