代码之家  ›  专栏  ›  技术社区  ›  vikiridi

嵌套循环,第二个循环基于第一个循环的长度

  •  0
  • vikiridi  · 技术社区  · 7 年前

    对于我的作业,我需要循环浏览单词列表(总共5757个),并将所有单词与其他单词进行比较。

    单词已排序,我将它们全部排列成一个数组,这并不重要,检查单词对我来说不是问题。 这就是我的问题所在。

    for(int i= 0; i< 5757; i++){
            for(int j = i; j < i+10; j++){ 
    

    我希望第二个for循环从第一个for循环中的当前位置(因此为temp)转到I+10 但正如你可以很明显地告诉我的,我的问题是温度在5757结束,但我检查温度+10。。。 这会破坏一切。 很抱歉,我对这个问题的措辞非常糟糕,我不知道如何更好地表达这个问题,或者如何找到这个问题的答案。

    基本上,我想要的是这个

    用以下10个单词检查位置i处的单词(因此是第二个for循环,j=i到i+10)。 所以像这样我检查单词 arrayOfWords[一]至arrayOfWords[一+十]

    像这样,我会检查以下10个单词,然后检查每个单词。

    但是,正如我所说的,问题来了,它超出了界限,前往I+10。。。 我不知道该如何做得更好,也不知道该如何更好地表达这个问题。 请帮忙。 提前感谢您花时间回答我措辞糟糕的问题。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ishpreet    7 年前

    只需找到 Word Length (即。 5757 )& i+10 在第二个循环中。

    int maxWordLen = 5757;
    for(int i = 0; i < maxWordLen ; i++){
        for(int j = 0 ; j < min(maxWordLen, i + 10) ; j++){
            . . .
        }
    }