質問編集履歴

3

カウントの結果を表に変換

2022/05/20 01:39

投稿

aomi333
aomi333

スコア1

test CHANGED
File without changes
test CHANGED
@@ -13,27 +13,19 @@
13
13
  3456543154897978017060606
14
14
  【標準入力】
15
15
  20
16
- 【現在標準出力に出力されている結果】
17
- 0:4
18
- 1:2
19
- 3:2
20
- 4:3
21
- 5:3
22
- 6:4
23
- 7:3
24
- 8:2
25
- 9:2
26
16
 
17
+ |列1|【現在標準出力に出力されている結果】|【20桁(標準入力にて指定)のみのカウント結果】|
27
- 【標準入力の桁数のみ出力】
18
+ |:--|:--:|--:|
28
- 0:2
19
+ 0|4|2
29
- 1:2
20
+ 1|2|2
30
- 3:2
21
+ 3|2|2
31
- 4:3
22
+ 4|3|3
32
- 5:3
23
+ 5|3|3
33
- 6:1
24
+ 6|4|1
34
- 7:3
25
+ 7|3|3
35
- 8:2
26
+ 8|2|2
36
- 9:2
27
+ 9|2|2
28
+
37
29
 
38
30
  【標準出力に出力したい結果】
39
31
  4:3

2

char file[20]; とscanf("%s", file);は不要のため削除

2022/05/20 01:29

投稿

aomi333
aomi333

スコア1

test CHANGED
File without changes
test CHANGED
@@ -46,7 +46,6 @@
46
46
  int main(int argc, char *argv[]) {
47
47
 
48
48
  FILE *fp;
49
- char file[20];
50
49
  char ch;
51
50
  int i;
52
51
 
@@ -54,7 +53,6 @@
54
53
  int cnt[10] = {0};
55
54
 
56
55
  //ファイルを読み取り専用で開く。失敗するとNULLを返す。
57
- scanf("%s", file);
58
56
  fp = fopen(argv[1], "r");
59
57
  if (fp == NULL) {
60
58
  printf("%s : file not opened.\n", argv[1]);

1

初心者アイコンを追加しました。わかりにくい箇所を修正しました。

2022/05/20 01:28

投稿

aomi333
aomi333

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,30 +1,44 @@
1
- txtファイルを読み込み0~9までの数字のカウントを行い、
1
+ txtファイルを読み込み0~9までの数字のカウントを行い、一番多い数字を出力したいです。
2
- 一番多い数字を標準出力に出力したいです。(同数があれば若い番号順に出力)
3
- カウントを行う桁数は標準入力で決まっています。
4
2
 
3
+ txtファイルにある数字の0~9までのカウントはできているのですが、
4
+ 以下の2つの対応がどのようしたら良いかわかりません。
5
+ ・標準入力にある桁数のみカウントを行う。(下の例ですと24桁ありますが、20桁のみカウントしたいです)
6
+ ・カウントした中で、最大値のみを標準出力する。(同数が複数あれば若い番号順に出力する)
7
+
5
- 字のカウントだけはできていると思っていますが、初学者のため、あまり難しいコードはわからないのですが、
8
+ 字のカウントだけはできていると思っていますが、初学者のため、あまり難しいコードはわかりません。
6
9
  ご教授いただければ幸いです。
7
10
  よろしくお願いします。
8
11
 
9
12
  【txtファイル】
10
- **_3456543154897978017_**32833534
13
+ 3456543154897978017060606
11
14
  【標準入力】
12
15
  20
13
- カウントの結果】
16
+ 現在標準出力に出力されている結果】
14
- 0 :1
17
+ 0:4
15
- 1 :2
18
+ 1:2
16
- 3 :2
19
+ 3:2
17
- 4 :3
20
+ 4:3
18
- 5 :3
21
+ 5:3
19
- 6 :1
22
+ 6:4
20
- 7 :3
23
+ 7:3
21
- 8 :2
24
+ 8:2
22
- 9 :2
25
+ 9:2
23
26
 
24
- 【標準出力】
27
+ 【標準入力の桁数のみ出力】
28
+ 0:2
29
+ 1:2
30
+ 3:2
25
- 4 :3
31
+ 4:3
26
- 5 :3
32
+ 5:3
33
+ 6:1
27
- 7 :3
34
+ 7:3
35
+ 8:2
36
+ 9:2
37
+
38
+ 【標準出力に出力したい結果】
39
+ 4:3
40
+ 5:3
41
+ 7:3
28
42
 
29
43
  ```C
30
44
  #include <stdio.h>
@@ -53,7 +67,7 @@
53
67
  cnt[ch - '0']++;
54
68
  }
55
69
  }
56
- for (i = 0; i < 9; i++) {
70
+ for (i = 0; i <= 9; i++) {
57
71
  if (cnt[i] >= 1){
58
72
  printf("%c:%d\n", '0' + i, cnt[i]);
59
73
  }