C语言用编写:五位以内的正整数,求它是几位数,并逆序输出。

初学C语言,刚学到控制语句的if……else。下面是我写的程序,哪里出错了?应该怎么改?【急!在线等】

#include <stdio.h>
void main()
{
int a,b,c,d,e,x,m;

printf("请输入一个五位以内的正整数:\n");

scanf("%d",&x);

e=x/10000;

d=x%10000/1000;

c=x%1000/100;

b=x%100/10;

a=x%10;

if(x>99999||x<=0)

printf("ERROR!\n");

else if(x>9999)

m=5;

printf("数字为%d位数,逆序为%d%d%d%d%d\n",m,a,b,c,d,e);

else if(x>999)

m=4;

printf("数字为%d位数,逆序为%d%d%d%d\n",m,a,b,c,d);

else if(x>99)

m=3;

printf("数字为%d位数,逆序为%d%d%d\n",m,a,b,c);

else if(x>9)

m=2;

printf("数字为%d位数,逆序为%d%d\n",m,a,b);

else

m=1;

printf("数字为%d位数,逆序为%d\n",m,a);

}

程序没有错误。但是格式又一点问题。在每else if和else语句加上{}。
修改后:
#include <stdio.h>
void main()
{
int a,b,c,d,e,x,m;

printf("请输入一个五位以内的正整数:\n");

scanf("%d",&x);

e=x/10000;

d=x%10000/1000;

c=x%1000/100;

b=x%100/10;

a=x%10;

if(x>99999||x<=0)

printf("ERROR!\n");

else if(x>9999){

m=5;

printf("数字为%d位数,逆序为%d%d%d%d%d\n",m,a,b,c,d,e);}

else if(x>999){

m=4;

printf("数字为%d位数,逆序为%d%d%d%d\n",m,a,b,c,d);}

else if(x>99){

m=3;

printf("数字为%d位数,逆序为%d%d%d\n",m,a,b,c);}

else if(x>9){

m=2;

printf("数字为%d位数,逆序为%d%d\n",m,a,b);}

else {

m=1;

printf("数字为%d位数,逆序为%d\n",m,a);}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-05
#include
void
main()
{
int
input=0,cnt=0,tmp=0;
printf("请输入不多于9位的正整数:\n");
scanf("%d",&input);
tmp
=
input;
while(tmp>0)
{
cnt++;
tmp
=
tmp/10;
}
printf("%d的位数是:%d\n",input,cnt);
}
已经验证,结果正确
第2个回答  2012-03-18
上面都分析了,我给你推荐一个简单的:
#include <stdio.h>

int main () {
printf ("请输入一个整数:\n");
int n, temp = 0;
scanf ("%d", &n);
while (n) {
temp = temp*10 + n%10;
n = n/10;
}
printf ("逆序:%d\n", temp);
getchar ();
getchar ();
}
第3个回答  2012-03-18
#include<stdio.h>
int main()
{
int n;
printf("请输入整数:\n");
scanf("%d",&n);
int x=0,y=n;
printf("它的逆序数是:\n");
do
{
printf("%d",y%10);
y=y/10;
x++;
}while(y>0);
printf("\n它是%d位数",x);
return 0;
}追问

谢谢,不过我初学,还不太懂你的程序,不好意思。

c语言 输入一个5位或5位以下的正整数,逆序输出该数并计算它是几位数...
include "stdio.h"int main(int argc,char *argv[]){int n,m;printf("Please input the numbers:");if(scanf("%d",&n)!=1 || n<0 || n>99999){printf("Input error, exit...\\n");return 0;}printf("%d --> ",n);for(m=0;n;printf("%d",n%10),n\/=10,m++);printf(...

C程序 给一个不多于5位的正整数,要求: 、求出它是几位数 、分别输出每...
void main(){ int num;printf("请输入一个不多于5位的数:");scanf("%d",&num);printf("逆序输出为:");while(num>0){ printf("%d",num%10);num\/=10;} printf("\\n");}

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位的正整数,要求(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...

...不多于5位的正整数,要求编程实现(1)求它是几位数?(2)逆序输出各位数...
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\/...

给定一个不多于5位的正整数,求它是几位数并且按逆序分别输出每一位数字...
scanf("%d",&x);x1=x;for(n=0;x;n++){ a[n]=x%10;x\/=10;} printf("%d是%d位数\\n",x1,n);for(i=0;i<n;i++)printf("%d ",a[n-1-i]);printf("\\n逆序输出是:");for(i=0;i<n;i++)printf("%d ",a[i]);return 0;} C语言是一门通用计算机编程语言,应用广泛...

C语言编程,任意输入一个五位正整数,逆序输出每一位上的数 如输入54321...
\/(int) 结果为int 2: 待执行ser函数后,输出结果个位数 12345 % 10 = 5 3: 第二次执行ser函数...类比步骤1 4: 待递归执行ser函数,类比步骤2,输出十位个数 1234 % 10 = 4 5: 类比步骤1 6: 类比步骤2,输出百位个数 123 % 10 = 3 7: 类比步骤1 8: 类比步骤2,输出千位 12 %...

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...

...一个不多于五位数的整数,求它是几位数,按逆序输出各位数
long n; \/\/复制num int a,b,c,d,e;scanf("%ld",&num);n=num;\/\/你不能用num值在这里做除法与取余工作,否则就将num值变动了,或者用n将num做个备份 while(num\/10){ i++;num=num\/10;} printf("Width= %d\\n",i);num=n;if(i==1)printf("%d",num);if(i==2){a=num\/...

c语言输入一个不多于5位正整数要求:求出它是几位数;分别打印出每一位...
int main(void){ long int x;int y,i=1;printf("请输入一个不超过100000的整数:"); \/\/ <---请把,x去掉 scanf("%ld",&x);if (x>99999||x<1) printf("你所输入的数据超出计算范围\\n");else { while (x!=0) \/\/ <---请把 do 去掉 { y=x%10;printf("%d\\t",y);x=x\/...

相似回答