■やりたい事
コマンド行引数として与えられる2つの正整数 m, n ( 1 < n < 10000000 ) を読み取り、m/n の小数表示を標準出力に書き出すプログラムを作る。
与えられる m, n は、m が n では割り切れないものとする。出力は左詰に m を書き出し、 / に続いて n を書き出す。 続けて、空白を前後に置いて = を書き出し、整数部に続けて . を書き出し、以後小数部を書き出して最後に改行を行え。 小数部は、循環小数になる場合は非循環部を書き出した後、' を書き出し1度だけ循環部を書き出すこと。 有限小数になる場合はその小数部を書き出すこと。
実行例
コマンドライン入力
71 8
標準入力
標準出力
71/8 = 8.875
コマンドライン入力
13 7
標準入力
標準出力
13/7 = 1.'857142
コマンドライン入力
10 6
標準入力
標準出力
10/6 = 1.'6
■自分なりに作成してみましたが思うような出力となりません。
修正箇所等教えて頂きたく。
C
1#include <stdio.h> 2int main(int argc, char *argv[]){ 3 int n; 4 5 scanf("%d", &n); 6 int rr[n], qq[n]; 7 int r, q, i, j, k; 8 r= 1; k= 0; 9 for(i= 1; r!=0 && k==0; i++){ 10 rr[i]= r; 11 r*= 10; 12 q= r/n; qq[i]= q; 13 r= r%n; 14 for(k= i; k!=0 && rr[k]!=r; k--); 15 } 16 printf("0."); 17 for(j= 1; j!=i; j++){ 18 if( r!=0 && j==k ) printf("'"); 19 printf("%d", qq[j]); 20 } 21 printf("\n"); 22 return 0; 23}