質問編集履歴

4

追加ソースコード

2020/07/04 08:00

投稿

KeiD
KeiD

スコア26

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,14 @@
1
1
  最頻出文字(複数個の場合はすべて表示)するプログラムを作っています。
2
2
 
3
3
  以下のプログラムをベースに作成しています。
4
+
5
+
6
+
7
+ 英数字の個数を数えることはできましたが、
8
+
9
+ 最頻出文字の表示を与えるソースがわかりません。
10
+
11
+ どのようなソースを追加すれば以下例のような出力がでるのかご存じの方
4
12
 
5
13
  よろしくお願い致します。
6
14
 

3

最頻出文字表示のための追加コード

2020/07/04 08:00

投稿

KeiD
KeiD

スコア26

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,12 @@
1
- 最頻出文字(複数個の場合はすべて表示)の表示のみ未解決です。
1
+ 最頻出文字(複数個の場合はすべて表示)するプログラムを作っています
2
2
 
3
+ 以下のプログラムをベースに作成しています。
4
+
5
+ よろしくお願い致します。
6
+
7
+
8
+
3
- =作成したいプログラムの入力出力例=
9
+ =作成したいプログラムの入力出力例=========
4
10
 
5
11
  (入力例)
6
12
 
@@ -14,49 +20,7 @@
14
20
 
15
21
  最頻出文字 o t ←複数ある場合は全部表示
16
22
 
17
-
18
-
19
- よろしくお願い致します。
20
-
21
- =========================================================
22
-
23
-
24
-
25
- 英数字の数、最頻出文字、空白の数、改行の数 を数えるプログラム
26
-
27
-
28
-
29
- while((ch=getchar())!=EOF){ }と用い、英数字はisalnum()で判定し入力した英文から英数字数、最頻出文字、空白数、改行数、その他(半角英数字、空白、改行以外)
30
-
31
- の数を表示するプログラムを作りたいのですが
32
-
33
-
34
-
35
- ASCIIコードで区別し
36
-
37
- 改行は10 if(ch==10){ }
38
-
39
- 0-9とa-z A-Zの区別は if(isalnum ){ }
40
-
41
- 空白は32 if(ch==32){}
42
-
43
- その他はelse で else{}で区別し
44
-
45
-
46
-
47
- 以下のプログラムのようなものを使うのわかりますが
23
+ =========================
48
-
49
- if( )のあとの{ }の中に何を入れれば数を数えることができ
50
-
51
- 数えた数を以下の例のように表示できるのかわかりません。
52
-
53
- while((ch=getchar())!=EOF)で 英文を1文入力終了後改行で次の行へと入力し
54
-
55
- CTL+Dで入力終了し、例のようにそれぞれの数を数え表示するプログラムを作ろうとしています。
56
-
57
- ご存じの方ご教示お願い致します。
58
-
59
- よろしくお願い致します。
60
24
 
61
25
 
62
26
 
@@ -70,50 +34,24 @@
70
34
 
71
35
  int main()
72
36
 
73
- {
74
-
75
- int ch='\0';
37
+ { int ch='\0';
76
38
 
77
39
  printf("英文を入力してください\n");
78
40
 
79
- while((ch=getchar())!=EOF){
80
-
81
- if(isalnum(ch)!=0){ }
41
+ int alnum_count = 0;
82
42
 
83
43
 
84
44
 
85
- else if(ch==10){ }
45
+ while((ch=getchar())!=EOF){
86
46
 
87
- else if(ch==32){  }
47
+ if(isalnum(ch)!=0){alnum_count = alnum_count + 1;}
88
-
89
- else{ }
90
48
 
91
49
  }
50
+
51
+ printf("英数字数 %d\n", alnum_count);
52
+
53
+
92
54
 
93
55
  return 0;
94
56
 
95
57
  }
96
-
97
-
98
-
99
- =作成したいプログラムの入力出力例=
100
-
101
- (入力例)
102
-
103
- I went to the house.
104
-
105
- It was hot.
106
-
107
-
108
-
109
- (出力例)
110
-
111
- 英数字数 21
112
-
113
- 最頻出文字 o t ←複数ある場合は全部表示
114
-
115
- 空白数 6
116
-
117
- 改行数 2
118
-
119
- その他 2←ピリオドの数

2

最頻出文字のみ未解決

2020/07/04 06:39

投稿

KeiD
KeiD

スコア26

test CHANGED
@@ -1 +1 @@
1
- 数字の数、最頻出文字、空白の数、改行の数 数えるプログラム
1
+ 文入力し最頻出文字を表示するプログラム
test CHANGED
@@ -1,3 +1,27 @@
1
+ 最頻出文字(複数個の場合はすべて表示)の表示のみ未解決です。
2
+
3
+ =作成したいプログラムの入力出力例=
4
+
5
+ (入力例)
6
+
7
+ I went to the house.
8
+
9
+ It was hot.
10
+
11
+
12
+
13
+ (出力例)
14
+
15
+ 最頻出文字 o t ←複数ある場合は全部表示
16
+
17
+
18
+
19
+ よろしくお願い致します。
20
+
21
+ =========================================================
22
+
23
+
24
+
1
25
  英数字の数、最頻出文字、空白の数、改行の数 を数えるプログラム
2
26
 
3
27
 

1

入出力例の明示

2020/07/04 06:28

投稿

KeiD
KeiD

スコア26

test CHANGED
File without changes
test CHANGED
@@ -72,13 +72,17 @@
72
72
 
73
73
 
74
74
 
75
+ =作成したいプログラムの入力出力例=
76
+
75
- 例)
77
+ (入力例)
76
78
 
77
79
  I went to the house.
78
80
 
79
81
  It was hot.
80
82
 
81
83
 
84
+
85
+ (出力例)
82
86
 
83
87
  英数字数 21
84
88