这段代码的功能是:读取10个整数,然后输出其中所有重复出现的数字(每个重复数字只输出一次)。它通过将已输出的重复数字标记为-1来避免重复输出。 你的代码有一个逻辑问题:当找到重复数字时,你立即将数组中所有等于该数字的元素都改为-1,但此时外层循环还在继续,后续的外层循环可能会错误地处理这些被修改的元素。 - 外层循环变量i遍历数组时,如果a[i]已经被标记为-1,那么内层循环中a[i] == a[j]的判断会失效,但更重要的是,当a[i]本身是-1时,它可能与其他-1值误判为重复。 - 考虑一下:当a[i]被改为-1后,后续的外层循环中i继续增加,如果后面某个元素原本就是-1(比如用户输入了-1),或者被标记为-1,那么程序可能会错误地输出-1作为重复数字。