C语言 给出一个不多于4位的正整数。1.输出它是几位数 2.输出每一位数字 3.按逆序输出各位数字,
2个回答
展开全部
#include <stdio.h>
#include <math.h>
int main(void)
{
int num;
do
{
printf("请输入一个不大于四位的数据:\n");
scanf("%d", &num);
while(getchar()!='\n') //防止意外输入无效字符
continue;
}while(!(num>0 && num<10000));
int i=1, weishu=0;
for(i=1; num/i>0; i=i*10)
weishu++;
printf("输入的数据是%d位数据\n", weishu);
int num1 = num;
for(i=pow(10, weishu-1); i>=1; i/=10)
{
printf("%d\t", num1/i);
num1 = num1%i;
}
printf("\n");
num1 = num;
for(i=10; i<=pow(10, weishu); i*=10)
{
printf("%d\t", num1%10);
num1 = num1/10;
}
printf("\n");
return 0;
}
/*
VC++ 6.0 运行结果
请输入一个不大于四位的数据:
1234
输入的数据是4位数据
1 2 3 4
4 3 2 1
Press any key to continue
*/
#include <math.h>
int main(void)
{
int num;
do
{
printf("请输入一个不大于四位的数据:\n");
scanf("%d", &num);
while(getchar()!='\n') //防止意外输入无效字符
continue;
}while(!(num>0 && num<10000));
int i=1, weishu=0;
for(i=1; num/i>0; i=i*10)
weishu++;
printf("输入的数据是%d位数据\n", weishu);
int num1 = num;
for(i=pow(10, weishu-1); i>=1; i/=10)
{
printf("%d\t", num1/i);
num1 = num1%i;
}
printf("\n");
num1 = num;
for(i=10; i<=pow(10, weishu); i*=10)
{
printf("%d\t", num1%10);
num1 = num1/10;
}
printf("\n");
return 0;
}
/*
VC++ 6.0 运行结果
请输入一个不大于四位的数据:
1234
输入的数据是4位数据
1 2 3 4
4 3 2 1
Press any key to continue
*/
展开全部
#include "stdio.h"
void main()
{
int x,a,b,c,d,e,n,j;
printf("请输入一个不多于5位的正整数\n");
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5;
else if(a==0 && b!=0)n=4;
else if(a==0 && b==0 && c!=0)n=3;
else if(a==0 && b==0 && c==0 && d!=0)n=2;
else n=1;
if(a>9)printf("输入的数大于5位!\n");
else
{
if(n==1) printf("该数字是%d位数,个位%d\n",n,e);
else if(n==2) printf("该数字是%d位数,十位%d,个位%d\n",n,d,e);
else if(n==3) printf("该数字是%d位数,百位%d,十位%d,个位%d\n",n,c,d,e);
else if(n==4) printf("该数字是%d位数,千位%d,百位%d,十位%d,个位%d\n",n,b,c,d,e);
else if(n==5) printf("该数字是%d位数,万位%d,千位%d,百位%d,十位%d,个位%d\n",n,a,b,c,d,e);
if(n==5)j=e*10000+d*1000+c*100+b*10+a;
else if(n==4)j=e*1000+d*100+c*10+b;
else if(n==3)j=e*100+d*10+c;
else if(n==2)j=e*10+d;
else j=e;
printf("该数的逆序是%d\n",j);
}
}
这个是不多于5位的,你修改一下就可以用了
void main()
{
int x,a,b,c,d,e,n,j;
printf("请输入一个不多于5位的正整数\n");
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5;
else if(a==0 && b!=0)n=4;
else if(a==0 && b==0 && c!=0)n=3;
else if(a==0 && b==0 && c==0 && d!=0)n=2;
else n=1;
if(a>9)printf("输入的数大于5位!\n");
else
{
if(n==1) printf("该数字是%d位数,个位%d\n",n,e);
else if(n==2) printf("该数字是%d位数,十位%d,个位%d\n",n,d,e);
else if(n==3) printf("该数字是%d位数,百位%d,十位%d,个位%d\n",n,c,d,e);
else if(n==4) printf("该数字是%d位数,千位%d,百位%d,十位%d,个位%d\n",n,b,c,d,e);
else if(n==5) printf("该数字是%d位数,万位%d,千位%d,百位%d,十位%d,个位%d\n",n,a,b,c,d,e);
if(n==5)j=e*10000+d*1000+c*100+b*10+a;
else if(n==4)j=e*1000+d*100+c*10+b;
else if(n==3)j=e*100+d*10+c;
else if(n==2)j=e*10+d;
else j=e;
printf("该数的逆序是%d\n",j);
}
}
这个是不多于5位的,你修改一下就可以用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询