1/nの少数表示を書き出すプログラムについてです。 **で囲まれている部分の意味がある程度しか理解できません。 ➀i=1から始まり、r!=0(余りが0でない)&& k==0ならiをプラスするという部分の、なぜkは0なのか、ここにkが必要なのか ➁rr[k]!=r;とはどういう意味なのか、その後のk--という部分が分かりません。 コードの一部が考えてもいまいち理解できず、困っています。 どなたか教えていただけますでしょうか。よろしくお願いいたします。 #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]){ int n; int r,q,i,j,k; int *rr, *qq; scanf("%d",&n); rr= calloc(n,sizeof(int)); qq= calloc(n,sizeof(int)); ** r= 1; k= 0; ➀for(i= 1; r!=0 && k==0; i++){ rr[i]= r; r*= 10; q= r/n; qq[i]= q; r= r%n; ➁for(k= i; k!=0 && rr[k]!=r; k--); ** } printf("0."); for(j=1; j!=i; j++){ if(r!=0 && j==k) printf("'"); printf("%d", qq[j]); } printf("\n"); return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/03 09:47