早教吧作业答案频道 -->其他-->
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
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...
看了1,输入一个不多于5位的正整数...的网友还看了以下:
1.如果3次根号下2+x是2+x的立方根,那么x的取值范围是2.一种新型的球形储气罐,半径为1米, 2020-04-26 …
1.2011个3的连乘积减去2010个2的连乘机,差的个位数字是几?2.1-2-2+3+3+3-4 2020-05-13 …
1、对任何数字S和t,运算*,定义S*t=(S+2)(t-1).如果3*x=15,那么x=?2、从 2020-05-15 …
1+3=?B,13因为一个1+1个3等于英文字母大写B,一个1一个3等于13 2020-05-15 …
又难又简单的一道神奇数学题(1)已经3次根号12=b,3次根号0.012=m,3次根号12000, 2020-06-04 …
一堆棋子,2个2个的分少1一个,3个3个的分少一个,5个5个的分少一个,数量在50和70之间,这堆 2020-06-25 …
找规律,一堆物品,1层1个,2层1+2个3层1+2+3个4层1+2+3+4个n层 2020-07-10 …
数学题``在线====吖````1、1×1+2×2+3×3+4×4+…1991×1991的末位数字 2020-07-14 …
(3的平方等于9,代表两个3相乘等于9,3x=5,(注:X应该写在3的上面,我不会写)用指数函数计 2020-08-02 …
我知道答案1.4F,5F力同向2.1.如图3所示,六个力中相互间的夹角为60°,大小如图所示,则它们 2020-11-07 …