C语言编程:给一个不多于5位的正整数,要求编程实现(1)求它是几位数?(2)逆序输出各位数字?

这个C语言编程,还有就是算法描述流程图,感谢各位

这个我刚好做过,你看看。
#include<stdio.h>
void main()
{
long int a;
int n,b,c,d,e,f;
printf("\n请输入一个整数(0~99999):");
scanf("%d",&a);
if(a>9999)
n=5;
else if(a>999)
n=4;
else if(a>99)
n=3;
else if(a>9)
n=2;
else n=1;
printf("\n这个数的位数=%d",n);
f=a/10000;e=a%10000/1000;d=a%10000%1000/100;c=a%10000%1000%100/10;
b=a%10000%1000%100%10;
printf("\n万位为%d\n千位为%d\n百位为%d\n十位为%d\n个位为%d\n",f,e,d,c,b);
switch(n)
{
case 5:printf("%d%d%d%d%d",f,e,d,c,b);
printf("\n反序数字为:");
printf("%d%d%d%d%d",b,c,d,e,f);break;
case 4:printf("%d%d%d%d",e,d,c,b);
printf("\n反序数字为:");
printf("%d%d%d%d",b,c,d,e);break;
case 3:printf("%d%d%d",d,c,b);
printf("\n反序数字为:");
printf("%d%d%d",b,c,d);break;
case 2:printf("%d%d",c,b);
printf("\n反序数字为:");
printf("%d%d",b,c);
case 1:printf("%d",b);
printf("\n反序数字为:");
printf("%d",b);
}
} 注:f是求万位的数字,后面的以此类推。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-15
x>9999 判断是5位的
x>999 判断是4位的
x>99 判断是3位的
x>9 判断是2位的
x<10 判断是2位的

用if .... elseif ....
至于逆序,你可以以整除的方式本回答被提问者采纳
第2个回答  2009-11-09
#include <stdio.h>
void main()
{
long a=0,b=0;
int t=0;
scanf("%ld",&a);
for(t=0;a>0;a/=10,t++)
{
b=(b*10)+a%10;
}
printf("%d位的,逆序数=%ld\n",t,b);
return;
}
第3个回答  2009-11-11
用取余的方式得到正整数每个位上的数值,然后输出就行了
第4个回答  2013-03-31
用字符串来最快。。
#include<stdio.h>
#include<string.h>
void main()
{
char a[40];
int k,i;
gets(a);
k=strlen(a);
printf("它是%d位数\n",k);
for(i=k-1;i>=0;i--)
printf("%c ",a[i]);
printf("\n");
}

C语言编程:给一个不多于5位的正整数,要求编程实现(1)求它是几位数?(2...
b=a%10000%1000%100%10;printf("\\n万位为%d\\n千位为%d\\n百位为%d\\n十位为%d\\n个位为%d\\n",f,e,d,c,b);switch(n){ case 5:printf("%d%d%d",f,e,d,c,b);printf("\\n反序数字为:");printf("%d%d%d",b,c,d,e,f);break;case 4:printf("%d%d%d",e,d,c,b);printf(...

给一个不多于5位的正整数,要求编程实现(1)求它是几位数?(2)逆序输出各...
圆柱高h∶"); scanf("%f,%f",&r,&h); \/\/要求输入圆半径r和圆柱高h l=2*pi*r; \/\/计算圆周长l s=r*r*pi; \/\/计算圆面积s sq=4*pi*r*r; \/\/计算圆球

c语言编程:给一个不多于5位的正整数,要求(1)求出它是几位数(2)分别输 ...
include <stdio.h>\/\/无误及时采纳回答 int main(){int n;int count=0,i,a[5];printf ("输入一个不多于5位正整数(0~99999):\\n");scanf("%d",&n);if (n<=0 || n>=100000){printf ("输入的数不合法\\n");}else{while(1){a[count]=n%10;n=n\/10;if(n==0){break;}count...

c语言编程序 给一个不多于5位数的正整数,要求: 1:求出它是几位数; 2...
先 定义一个数组 a[5]初值 a[5]的各个数都等于-1;然后 对于你输入的数num;p=num;i=0;\/\/主要程序 while(p>0){ a=[i]=p%10; \/\/对p取余 p=p\/10;i++;} 输出 几位数:printf("%d",i);逆序输出 数字:for(int j =0;j...

c语言给一个不多于5位数的正整数,求出他是几位数,分别输出每一位数字...
include<stdio.h>int main(){ int a,b,c,d,e,p,n; scanf("%d",&n); if (n>9999) p=5; else if(n>999) p=4; else if(n>99) p=3; else if(n>9) p=2; else p=1; printf("位数:%d\\n",p); a=n\/10000; b=(int)(n-a...

C语言编程,给定一个不多于5位的正整数,求① 求它是几位数② 分别输出每...
void mian(){ int num,i,temp[5];printf("请输入一个低于5位的整数\\n");scanf("%d",&num);for(i=0;i<5,i++){ temp[i]=num%10;num=num\/10;} for(i=0,i<5;i++){ if(temp[i]<0)printf("这是一个%d位数",i);} while(temp[i]!=0){ printf("%d",temp[i]); i...

给1个不多于5位的正整数要求1求出它是几位数2分别打印出每一位数字3...
b[1]=(a%10000)\/1000;\/\/千位\/\/ b[0]=(a\/10000);\/\/万位\/\/ for(;flag>0;flag--){ printf("%d\\t",b[flag-1]);\/\/从个位开始输出\/\/ \/\/printf("%d\\t",b[5-flag]);\/\/从高位开始输出\/\/ } printf("\\n");} 不知道你逆序的意思,所以在输出时有两种方式,你可以选择 ...

C语言: 给一个不多于5为的正整数 要求:1.求出它是几位数 2.分别打印...
1. 求出它是几位数 include <stdio.h> int main(){ int n,m;printf("请输入一个正整数:");scanf("%d",&n);if(n<=0){ printf("输入错误!\\n");} else { m=0;while(n>0){ m++;n=n\/10;} printf("这是一个%d位数!\\n",m);} return 0;} 2.分别打印出每一位数字 ...

C语言编程题 给一个不多于五位的正整数,要求: 1.求出它是几位数 2.分...
unsigned int x=1, i=0;unsigned char c[5]={0};while(1){ printf("输入正整数x(不超过5位):");scanf("%u",&x);if(x\/100000){ printf("超过范围!\\n");continue;} i=0;do { c[i++]=x%10;}while(x \/= 10);printf("%d位数\\n",i);while(i >0)printf("%d ",c[--...

C语言5.11 题目描述 给定一个不多于5位的正整数,要求: 1、 求出它是...
1、 求出它是几位数;include <stdio.h> int main(){ int n;printf("请输入一个正整数:");scanf("%d",&n);if(n<=0){ printf("输入错误!\\n");} else { if((n\/10000)!=0){ printf("5\\n");} else if((n\/1000)!=0){ printf("4\\n");} else if((n\/100)!=0){...

相似回答