如何计算分数的精确值

xiaoxiao2021-02-28  146

使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环,则计算并输出他的第一循环节,同时要求输出他的第一循环节的起始位置(小数位的序号)。

#include <stdio.h>

main() {     int m,n,i,c,d,e,f;     int a[100];     int b[100];     printf("please input one fenshu:");     scanf("%d/%d",&m,&n);     printf("\n");     printf("0.");     a[0]=0;     b[0]=m;     for(i=1; ; i++)     {         m=b[i-1]*10;         b[i]=m%n;         a[i]=m/n;         if(b[i]==0) break;         if(i>=2)         {             for(c=(i-1); c>=1; c--)             {                 e=b[i];                 f=b[c];                 if(e==f) break;             }             if(c!=0)             {                 printf("    %d  %d",c,i-1);                 break;             }         }         printf("%d",a[i]);     } }
转载请注明原文地址: https://www.6miu.com/read-37482.html

最新回复(0)