求编一个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给放弃了(当做不合法输入),楼主要是觉得不好可以自己加一条判断
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;
}
}
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位的数都可以啦
#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;
}
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;
}
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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯