这样吧。
你用数组,先定义一个整型数组a[100],然后你数组的第一值,也就是a[0]你用来存小数点后第一位a[i]就存一个数,你给我发个题来,,我给你实现一下。。
这就是你要我给你编的东西。我调试过了,没问题,而且效率很搞,,关键对内存的运行占用较小,,以后有什么问题就直接说吧。。
/*原理:先输出正整数部分d,再输出小数点,最后输出数组中所存储的各位数。*/
#include"stdio.h"
#define M 100 /*用来修改自定义是数组的长度,以方便根据需求随时修改*/
void Division(int a,int b,int c)
{
int n[M];
int d,r1,r2,i;
r1=a%b;
d=(a-r1)/b;
for(i=0;i<=c;i++)
{
r2=(r1*10)%b;
n[i]=(r1*10-r2)/b;
r1=r2;
}
printf("a/b=%d.",d);
for(i=0;i<=c;i++)
printf("%d",n[i]);
printf("\n");
}
void main()
{
int a,b,c;
printf("请输入a,b,c的值:");
scanf("%d,%d,%d",&a,&b,&c);
Division(a,b,c);
}
#include
unsigned n,d;
unsigned a[101];
unsigned b[101];
int k=-1;
int j;
int i=1;
void main()
{
printf( "\nENTER N,D: ");
scanf( "%u%u ",&n,&d);
if(d==0)printf( "\nd can`t is 0\n ");
else
{
printf( "\n%u/%u= ",n,d);
if (n> =d)printf( "%u ",n/d);
n=n%d;
if (n!=0)
{
printf( ". ");
a[0]=n;
while(1)
{
if (i> 100) break;
b[i]=(a[i-1]*10)/d;
a[i]=(a[i-1]*10)%d;
if (a[i]==0)break;
for (j=0;j {
if (a[i]==a[j]){ k=j;break;}
}
if (k!= -1) break;
i++;
}
for(j=1;j <=i;j++)
{
if(k==j-1) printf( "( ");
printf( "%u ",b[j]);
}
if (k!=-1)printf( ") ");
}
}
printf( "\n ");
}
可以用一个较大的字符数组来存储~