.实数x可表示为x=(m(10(n,称(m是x的尾数,(n是x的以10为底的指数。接收键盘输入的一个double型浮点数x(x(0),将x分解为尾数(m(0.1
输入x=0.001234时得到尾数0.1234和指数-2,输出:0.1234e-2
输入x=-123.4时得到尾数-0.1234和指数3,输出:-0.1234e3
运行结果:
代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
double x;
double m;
int zs = 0,flag = 1;
scanf("%lf", &x); //输入x
if (x > 0)
flag = 1;
else
{
x = -x;
flag = -1;
}
if (x >= 1)
{
while (x >= 1)
{
zs++;
x = x / 10.0;
}
}
else
{
while (x < 0.1)
{
zs -= 1;
x = x * 10;
}
}
printf("%ge%d", flag * x, zs);
return 0;
}
对输入的数进行判断
绝对值大于1的数,进行除10直到小于1,得到指数,以及最终的尾数。
绝对值小于0的数,进行乘10直到大于0,得到指数,以及最终的尾数。
#include <stdio.h>
#include <math.h>
int main()
{
double a;
int z=0;
scanf("%lf",&a);
if(fabs(a)>1)
{
while(fabs(a)>1)
{
a = a/10;
z++;
}
}
else
{
while(fabs(a)<0.1)
{
a=a*10;
z--;
}
}
printf("%ge%d",a,z);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!