永发信息网

求编一个C语言程序。 给一个不多于5位的正整数,要求 ①求出它是几位数 ②分别输出每一位数字 例如

答案:5  悬赏:20  手机版
解决时间 2021-04-07 06:32
  • 提问者网友:趣果有间
  • 2021-04-06 23:29
求编一个C语言程序。 给一个不多于5位的正整数,要求 ①求出它是几位数 ②分别输出每一位数字 例如
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-04-07 00:53
#include
void main()
{
int k,a[5],i,j;
printf("请输入要求的数字:\n");
scanf("%d",&k);
if(k>=100000||k<=0)printf("Wrong input!\n");
else
{
a[0]=k/10000;
a[1]=(k-a[0]*10000)/1000;
a[2]=(k-a[0]*10000-a[1]*1000)/100;
a[3]=(k-a[0]*10000-a[1]*1000-a[2]*100)/10;
a[4]=k-a[0]*10000-a[1]*1000-a[2]*100-a[3]*10;
for(i=0;i<=4;i++)
{
if(a[i]!=0)
{
printf("这是一个%d位数\n各位数字分别为:\n",5-i);break;
}

}

for(j=i;j<=4;j++)
printf("%d ",a[j]);
putchar('\n');
}
}

//我把0给放弃了(当做不合法输入),楼主要是觉得不好可以自己加一条判断
全部回答
  • 1楼网友:躲不过心动
  • 2021-04-07 02:31
#include
void main()
{
int x,i=0,j,y,k,m;
scanf("%d",&x);
y=x;
while(y)
{
i++;
y=y/10;
}
printf("是%d位数\n",i);
for(j=i,y=x;j>=1;j--)
{
m=1;
for(k=j-1;k>=1;k--)
m=m*10;

printf("%d ",y/m);
y=y%m;
}
}
  • 2楼网友:十年萤火照君眠
  • 2021-04-07 02:16
#include 
#define MAX 10
int main(void)
{
    int n = 12478690, m = 0, i = 0;
    int digit[MAX];
    while (n)
    {
        digit[i++] = n % 10;
        n /= 10;
        m++;
    }
    printf("%d digits ", m);
    for (i = m-1; i >= 0; --i)
        printf("%d ", digit[i]);
    return 0;
}
处理MAX位的数都可以啦
  • 3楼网友:纵马山川剑自提
  • 2021-04-07 02:01
#include
int main(){
int n,a[6],p;
scanf("%d",&n);
p=0;
while(n){
a[p++] = n%10;
n /= 10;
}
printf("%d\n",p);
for(int i=p-1;i>=0;i--){
if(i != (p-1) ) printf(" ");
printf("%d",a[i]);
}
printf("\n");
return 0;
}
  • 4楼网友:冷風如刀
  • 2021-04-07 01:53
#include //望采纳!!
int main(void)
{
int a=0,b=0;
int num (int,int,int *);
scanf("%d",&a);
printf("%d位",num(a,0,&b));
a=b;
b=0;
num(a,1,&b);
}
int num(int a, int b, int *c)
{
int i=0;
while(a != 0)
{
*c=*c*10+a%10;

if(b==1)
{
printf("%d ",a%10);
}
a=a/10;
i++;
}
if(b==1)
{
printf("\n");
}
return i;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯