早教吧 育儿知识 作业答案 考试题库 百科 知识分享

1,输入一个不多于5位的正整数2输出该数是几位数该数的逆数(例如123的逆数是321输出)3输出各个位的数是什么.当我输入一个小于5位数的时遇到一个问题.例如我输入1234条件3中万位出现

题目详情
1,输入一个不多于5位的正整数
2输出该数是几位数 该数的逆数
(例如123的逆数是321 输出)
3输出各个位的数是什么.
当我输入一个小于5位数的时遇到一个问题.例如我输入1234
条件3 中 万位出现不该有的数 原因是数组没有初始化为0
但是如果我在源代码中加入了把数组初始化为0
又出现了另一个问题 该数的逆数就是 43210 出现错误
该怎么解决该问题
另外请帮我简化源代码谢谢
#include
#include
void main()
{ int d ;
long a[5]={0,0,0,0,0} ;/*保存各位的数*/
\x05int n ; /*用来保存不多于5位的正整数*/
\x05int z; /* 记录该数共有几位*/
F:
\x05printf("请输入不多于5位的正整数\n");
\x05scanf("%d",&n);
\x05 if(n>=10000)
\x05 {\x05
\x05\x05\x05\x05 z=5;
}
\x05\x05\x05 else if(n>=1000)
\x05 {\x05
\x05\x05\x05\x05 z=4;
}
\x05\x05\x05 else if(n>=100)
\x05 {\x05
\x05\x05\x05\x05 z=3;
}
else if(n>=10)
\x05 {\x05
\x05\x05\x05\x05 z=2;
\x05\x05\x05 }
\x05\x05\x05 else if(n>=1)
\x05 {\x05
\x05\x05\x05\x05 z=1;
}
\x05\x05\x05 \x05else
\x05\x05\x05\x05\x05\x05\x05\x05{
\x05\x05\x05\x05\x05\x05\x05\x05\x05getchar();
\x05\x05\x05 \x05printf("输入错误\n");
getchar();
\x05\x05\x05 goto F ;
\x05\x05\x05\x05\x05\x05\x05\x05}
switch (z)
\x05 {
\x05 case 1:
a[0]=n;
\x05 break ;
\x05 case 2:
a[0]=(n%10);
a[1]=(int)(n/10);
\x05 break ;
\x05\x05case 3:
a[0]=(n%10);
a[1]=((int)(n/10)%10);
a[2]=((int)(n/100));
\x05\x05break ;
\x05\x05case 4:
\x05\x05a[0]=(n%10);
\x05\x05a[1]=((int)(n/10)%10);
\x05\x05a[2]=((int)(n/100)%10);
\x05\x05a[3]=((int)(n/1000));
\x05\x05break ;
\x05\x05case 5 :
\x05\x05a[0]=(n%10);
\x05\x05a[1]=((int)(n/10)%10);
\x05\x05a[2]=((int)(n/100)%10);
\x05\x05a[3]=((int)(n/1000)%10);
\x05\x05a[4]=((int)(n/10000));
\x05\x05break ;
\x05 }
system("cls");
\x05 printf("该数是%d位数\n",z);
printf("该数的逆数是\n");
\x05\x05 for(d=0;d
▼优质解答
答案和解析
#include //解决这个问题只用这一个头文件就够了//#include void main(){ int d ;long a[5]={0,0,0,0,0} ;/*保存各位的数*/\x05int n ; /*用来保存不多于5位的正整数*/\x05int z; /* 记录该数共有几位*/F:\x05printf...