#1
by カステラ » 7年前
C言語で循環小数の循環節を表示するプログラムをおしえてください
例えば1/7の時は0.(142857)と表示させるプログラムを教えてください
自分でも書いてみたのですが、1/7の計算のとき
0.(142857142857)と循環節が2回
表示されてしまいます
#include <stdio.h>
int main(void)
{
int i;
int a[20],b,c,f,n,d,q,r;
f=0,b=0;
for(i = 0; i < 10; i++){
a = 0;
}
d=1;
printf("分母を入力: ");
scanf("%d", &n);
q = d / n;
r = d % n;
printf("%d / %d = %d.", d, n, q);
while(r!=0){
d = r *10;
q = d / n;
r = d % n;
if(f==0){
printf("(");
f++;
}
if (a[q] == 2){
printf(")");
break;
}
a[q]++;
printf("%d", q);
}
printf("\n");
return 0;
}
C言語で循環小数の循環節を表示するプログラムをおしえてください
例えば1/7の時は0.(142857)と表示させるプログラムを教えてください
自分でも書いてみたのですが、1/7の計算のとき
0.(142857142857)と循環節が2回
表示されてしまいます
#include <stdio.h>
int main(void)
{
int i;
int a[20],b,c,f,n,d,q,r;
f=0,b=0;
for(i = 0; i < 10; i++){
a[i] = 0;
}
d=1;
printf("分母を入力: ");
scanf("%d", &n);
q = d / n;
r = d % n;
printf("%d / %d = %d.", d, n, q);
while(r!=0){
d = r *10;
q = d / n;
r = d % n;
if(f==0){
printf("(");
f++;
}
if (a[q] == 2){
printf(")");
break;
}
a[q]++;
printf("%d", q);
}
printf("\n");
return 0;
}