teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

削除された内容の復元を行いました

2020/02/04 04:56

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,37 +1,43 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
 
4
+ 標準入力に与えられる2つの正整数 m, n ( 1 < n < 9500 ) を読み取り、 m/n の小数表示を標準出力に書き出すプログラムを作成したいです。
5
+ m, n は、m が n では割り切れないもので、出力は必要最小限の桁数で m を書き出し、 / に続いて必要最小限の桁数で n を書き出す。 続けて、空白を前後に置いて = を書き出し、整数部に続けて . を書き出し、 以後小数部を書き出して最後に改行を行え。 小数部は、循環小数になる場合は非循環部を書き出した後、' を書き出し1度だけ循環部を書き出し。 有限小数になる場合はその小数部を書き出すプログラムです。
6
+ 実行例
7
+ 標準入力
8
+ 71 8
9
+ 標準出力
10
+ 71/8 = 8.875
4
11
 
5
- 循環した整数を計算し出力に書き出すプログラムですが、いまいち内容がよく分かりません。
6
- コード自体を書いてみましたが。所何処と間違っていると思われます。
7
- 詳しい方、細かく教えて下さい。宜しくお願いします。
8
- 追加・削除箇所も教えて下さい。宜しくお願い致します。
9
12
 
10
-
11
13
  ### 該当のソースコード
12
14
 
13
15
  C言語
14
16
 
15
17
 
16
18
  #include <stdio.h>
19
+ #include <stdlib.h>
17
20
 
18
-
19
21
  int main(int argc, char *argv[]){
20
22
  int n;
21
23
 
22
- fscanf("%d", &n);
24
+ scanf("%d", &n);
23
- int n;
25
+ int rr[n], qq[n];
24
- int r, q, i, j, p;
26
+ int r, q, i, j, k;
25
27
 
26
- p=5;
28
+ r= 1; k= 0;
27
- for(i= 1; r!=0 && k==n; k++){
29
+ for(i= 1; r!=0 && k==0; i++){
30
+ rr[i]= r;
31
+ r*= 10;
32
+ q= r/n; qq[i]= q;
28
-    p= r;
33
+ r= r%n;
34
+ for(k= i; k!=0 && rr[k]!=r; k--);
29
35
 
30
36
  }
31
- printf("昨日からの ");
37
+ printf("r/q = ");
32
- for(j= 0; n=p; k--){
38
+ for(j= 1; j!=i; j++){
33
- if( p<=k ) printf("\n");
39
+ if( r!=0 && j==k ) printf("'");
34
- printf("%d", p);
40
+ printf("%d", qq[j]);
35
41
  }
36
42
  printf("\n");
37
43
 

1

一部変更

2020/02/04 04:56

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,14 +1,11 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 標準入力に与えられる2つの正整数 m, n ( 1 < n < 9500 ) を読み取り、 m/n の小数表示を標準出力に書き出すプログラムを作成したいです。
4
3
 
5
- m, n は、m が n では割り切れないもので、出力は必要最小限の桁数で m を書き出し、 / に続いて必要最小限の桁数で n を書き出す。 続けて、空白を前後に置いて = を書き出し、整数部に続けて . を書き出し、 以後小数部を書き出して最後に改行を行え。 小数部は、循環小数になる場合は非循環部を書き出した後、' を書き出し1度だけ循環部を書き出し。 有限小数になる場合はその小数部を書き出すプログラムです。
6
4
 
7
- 実行例
8
- 標準入
5
+ 循環した整数を計算し出に書き出すプログラムですが、いまいち内容がよく分かりません。
9
- 71 8
6
+ コード自体を書いてみましたが。所何処と間違っていると思われます。
10
- 標準出力
11
- 71/8 = 8.875
7
+ 詳しい方、細かく教えて下さい。宜しくお願いします。
8
+ 追加・削除箇所も教えて下さい。宜しくお願い致します。
12
9
 
13
10
 
14
11
  ### 該当のソースコード
@@ -17,27 +14,24 @@
17
14
 
18
15
 
19
16
  #include <stdio.h>
20
- #include <stdlib.h>
21
17
 
18
+
22
19
  int main(int argc, char *argv[]){
23
20
  int n;
24
21
 
25
- scanf("%d", &n);
22
+ fscanf("%d", &n);
26
- int rr[n], qq[n];
23
+ int n;
27
- int r, q, i, j, k;
24
+ int r, q, i, j, p;
28
25
 
29
- r= 1; k= 0;
26
+ p=5;
30
- for(i= 1; r!=0 && k==0; i++){
27
+ for(i= 1; r!=0 && k==n; k++){
31
- rr[i]= r;
32
- r*= 10;
33
- q= r/n; qq[i]= q;
34
- r= r%n;
28
+    p= r;
35
- for(k= i; k!=0 && rr[k]!=r; k--);
29
+
36
30
  }
37
- printf("r/q = ");
31
+ printf("昨日からの ");
38
- for(j= 1; j!=i; j++){
32
+ for(j= 0; n=p; k--){
39
- if( r!=0 && j==k ) printf("'");
33
+ if( p<=k ) printf("\n");
40
- printf("%d", qq[j]);
34
+ printf("%d", p);
41
35
  }
42
36
  printf("\n");
43
37