#include <stdio.h>
#include <math.h>
main()
{
double a;
int i,b,c,e;
clrscr();
printf("please input double type a:");
scanf("%lf",&a);
/* printf("%lf\n",a);*/
printf("please input integer i:");
scanf("%d",&i);
b=(int)a;
/* printf("%d\n",b);*/
e=(a-b)*pow(10,i);
/* printf("%d",e);*/
if(0<=i<=9)
printf("%d.%01d",b,e);
else
if(10<=i<=99)
printf("%d.%02d",b,e);
else
if(100<=i<=999)
printf("%d.%03d",b,e);
else
printf("%d.%04d",b,e);
}
可是为什么我左边不能补0啊,麻烦告诉我一下啊谢谢啊
[此贴子已经被作者于2007-1-25 22:07:55编辑过]
8楼的想法不错,我编了个,
#include"stdio.h"
main()
{int n,i,k,f1;
double f;
char a[50];
printf("input n:");
scanf("%d",&n);
printf("input f:");
scanf("%lf",&f);
printf("n=%d,f=%f\n",n,f);
f1=(int)f/1;
for(i=0;i<n;i++)f*=10;
for(i=0;i<n;i++){a[i]=(int)f%10+'0';
f/=10;
};
printf("f=%d.",f1);
for(k=i-1;k>=0;k--)printf("%c",a[k]);
getch();}
[此贴子已经被作者于2007-1-28 16:32:02编辑过]