![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
while文で単語を読み込んでtango[i](単語を格納している)に同じ単語があれば、配列hindo[i](単語の出現回数を格納)に1を加える。tango[i]に同じ単語がなければtango[i]に単語を追加。aはtango[i]の最後の値、keyは読み込み単語とし、単語の出現頻度を出したいのですが、うまくいきません。ソースとしては以下のものを考えました。
for(i = 0; i <= a ;i = i + 1){
if(key == tango[i]){
hindo[i] = hindo[i] + 1;
break;
}
if(key != tango[a]){
tango[a] = key;
a = a + 1;
}
}
どうすればうまくいきますか?
たびたびすいませんが、初心者なのでよろしくお願いします。
No.2ベストアンサー
- 回答日時:
ごめんなさい、カテゴリは JavaScript でしたね…。
見落としてました。ならば次のとおりでOKです。下に書いた(2)は読み飛ばしてください。
for(i = 0; i < a ; i = i + 1) {
if (key == tango[i]) {
hindo[i] = hindo[i] + 1;
break;
}
}
if (i >= a) {
tango[a] = key;
a = a + 1;
}
お礼が遅れすいませんでした。
迅速かつ丁寧な回答で、大変助かりました。
おかげ様でうまくいきました!
また質問をすることがあるかと思いますが、
その節はよろしくご教授願います。
No.1
- 回答日時:
言語は C で良いのでしょうか?ならば、こんな感じです。
for(i = 0; i < a ; i = i + 1) {
if (strcmp(key, tango[i]) == 0) {
hindo[i] = hindo[i] + 1;
break;
}
}
if (i >= a) {
tango[a] = key;
a = a + 1;
}
ポイントは次のとおりです。
(1) for の中の条件は i <= a ではなく i < a です。C言語では、配列に a 個の要素がある場合、tango[0] ~ tango[a - 1]となるためです。
(2)key と tango[i] を「==」で比較してしまうと、ポインタを比較するだけで文字列の比較になりません。そこで、文字列の比較には strcmp 関数を用います。
(3)ループを a 回回っても一致する単語がなかった場合に、tango[a] に新しい単語を登録すれば良いので、単語を登録する部分はループの外に書き、if の条件は i >= a とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- 大学受験 大学受験 英単語について こんにちは、現在底辺から逆転合格したいと思ってる 受験生です。 英単語につ 2 2022/10/16 17:16
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- 大学受験 大学受験英語の勉強法についてです どうしても英語長文の勉強ができません 初めて数分で絶対にやる気がな 2 2023/05/05 00:32
- 英語 ダイパリメイクを英語でしているのですが… 1 2022/10/28 03:18
- 英語 英単語帳だけやっても単語は覚えられません。単語帳だけだと、なんか単語の流れを覚えてしまうため、不意に 6 2022/05/12 23:50
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- 大学受験 明治大学受験、もう一冊、英単語張をやるか? 4 2022/10/23 20:50
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- 大学受験 英単語帳について質問です。 たくさんの回答お待ちしております。 現在高3、産近甲龍志望です。 現在タ 5 2023/08/21 11:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でしりとりのプログラムを...
-
フォームを開くときに、コンボ...
-
エラーの意味は? Lvalue req...
-
C言語 exitの使い方
-
jsp~jspにhiddenを使って変数...
-
Excel-vba 文字列と変数を...
-
VBAでダブルコーテーション入り...
-
C言語で全角文字を扱いたいので...
-
Java認定試験3級の問題です。 ...
-
excelの、ある数式内の{}の意...
-
long型のランダムな値を返す方法
-
スピンボタンで小数点
-
COLUMN(1:1)の意味を教え...
-
計算プログラムにおける無限大...
-
GPIBの応答について
-
VBA 1行で複数の代入を行った...
-
EXCEL/VBA 変数の値をクリップ...
-
VB6.0-整数と余りを求める
-
VB6で配列を文字列に変換する方...
-
○桁にある数値を取得する VB.N...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語でしりとりのプログラムを...
-
異なる文字列のマッチングを、D...
-
表記のゆれを吸収する方法
-
CGI.pmによるプルダウンメニ...
-
カウント配列
-
C言語 exitの使い方
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
excelの、ある数式内の{}の意...
-
エクセルへのデータの貼付時に...
-
配列の値を置換するにはどうす...
-
EXCEL/VBA 変数の値をクリップ...
-
だれがとけるの?
-
C言語 列挙型(enum型)変数について
-
VisualStudio2022でC言語プログ...
-
[VBS]変数を定数に変換する方法...
-
jsp~jspにhiddenを使って変数...
-
プログラミングについての質問...
おすすめ情報