#include <stdio.h>
main(void) {
int n, amari, x, i, m, y, h;
int a[100];
printf("N ha?");
scanf("%d", &n);
x = 1;
a[x] = amari;
amari = x % n; // amari 余りを計算
printf("%d.", x / n); // x÷n 商を表示
for(i = 0; i <= 1000; i++) {
for(y = i;y >= 0;y--){
if(a[y] == amari){
h = 1;
break;
}
}
if(amari==0){
printf("%d", x/n);
break;
}
else if(h == 1){
break;
}
else{
printf("%d", x/n);
}
x = amari * 10; // x←amari×10
amari = x % n; // amari 余りを計算
}
return 0;
}
これは、数値を入力してもらい、その値で1を割り逆数を計算して、割り切れるか循環するかを判断し、割り切れたら結果を表示し、循環なら循環節を表示させるプログラムを作っているのですが、計算してみると割り切れるほうはちゃんと計算されるのですが、循環のほうが循環節の途中で切れたり、余分に表示されたりします。いろいろいじってみたのですがわからないので、どなたかわかる方回答よろしくお願い致します。※プログラムのつくりなどでわからない点などありましたら出来る限りお答えしますのでよろしくお願いします。