0

strcmpindexと呼ばれる構造体の配列に格納されている文字列と比較するために使用しようとしています。このインデックスには、webpageという文字列とrankというintが含まれています。アイデアは、2つのインデックスを比較し、最初の2つのインデックスとそれぞれのランクの合計の間で同じWebページを含む3番目のインデックスを作成することです。

問題は、forループを使用してインデックス間の類似ページ数を見つけると、常に7を返すことです。4のみを返す必要があります。この関数を誤って使用していますか?

int thesame = 0;

for(i = 0; i < 8; i++) {
    for(j = 0; j < 7; j++) {
        if(strcmp(hotels[i].webpage,seattle[i].webpage) == 0) {
             thesame++;
         }
    }
}
printf("%d\n", thesame);

return 0;

また、長さのハードコーディングされた値がたくさんあり、これは適切なコーディング方法ではないことも理解しています。これを変更する前に、プログラムを動作させる予定です。

4

1 に答える 1

7
if (strcmp (hotels[i].webpage, seattle[i].webpage) == 0)

インデックスをi2 回使用しています。私はあなたがむしろ次のようなものが欲しいと思います:

if (strcmp (hotels[i].webpage, seattle[j].webpage) == 0)
---------------------------------------^----------------
于 2013-02-26T17:53:38.747 に答える