以下のプログラムで英文入力後
各英文字に対応するASCIIコードとその頻度と最大頻度は表示できました。
しかし、最大頻度に対応するASCIIコードとそのASCIIコードを英文字に変換し
表示する方法がわかりません。
例えばWho are you? という英文入力後
Max count=2 とでますが
頻度2の時のASCIIコードのみを英文字に変換して表示する方法がわかりません。
ご存じの方教えて頂けると大変助かります。
よろしくお願い致します。
#include <stdio.h>
int main()
{
int i,ch;
int cnt[150] ={0};
while(1){
ch =getchar();
if (ch==EOF) break;
if (ch>=65 && ch<=90||ch>=97&&ch<=122)
cnt[ch]++;
}
int max_count = 0;
for ( i = 0; i < 150; ++i ) {
if ( max_count < cnt[i] ) max_count = cnt[i];
}
puts("文字の出現回数");
for(i=65; i<123; i++)
printf("'ASCII=%d';%d\n",i,cnt[i]);
printf("Max count",max_count);
return 0;
}
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
ひんと:
printf("'ASCII=%d';%d\n",i,cnt[i]);
コレ↑をこう↓してみ?
printf("'ASCII=%d**(%c)**';%d\n",i, (char)i, cnt[i]);
しかるのち、さらに こう↓してみ?
if ( cnt[i] == max_count ) { printf("'ASCII=%d**(%c)**';%d\n",i, (char)i, cnt[i]); }
投稿2020/07/04 12:33
編集2020/07/04 12:36総合スコア16612
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/04 12:50 編集
2020/07/04 13:10
2020/07/04 13:24 編集
2020/07/04 13:28
2020/07/04 13:30
2020/07/04 13:31
2020/07/04 13:43
2020/07/04 13:49 編集
2020/07/04 13:48 編集
2020/07/04 13:49
2020/07/04 13:50
2020/07/04 13:55
2020/07/04 13:56
2020/07/04 13:58
2020/07/04 14:01
2020/07/04 14:01
2020/07/04 14:09 編集
2020/07/04 14:07
2020/07/04 14:13 編集
2020/07/04 14:15
2020/07/04 14:29 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。