for(int i=0;i<=20;i++) //nums1 { for(int j=0;j<=20;j++) //nums2 { if(j == 20) { i++; j = 0; } if(i == 20) { break; } if(nums1[i] == nums2[j]) { same[i] = nums1[i]; } } } 哪里错了请问?
时间: 2023-06-12 08:06:12 浏览: 72
这段代码中,for 循环的条件中没有对变量进行递增,导致循环无法正常结束,进入死循环。你需要在循环体内对变量 i 和 j 进行递增,否则循环条件始终满足,会一直执行循环。
修正后的代码如下:
```
for(int i=0;i<=20;i++) //nums1
{
for(int j=0;j<=20;j++) //nums2
{
if(j == 20) {
i++;
j = 0;
}
if(i == 20) {
break;
}
if(nums1[i] == nums2[j])
{
same[i] = nums1[i];
}
}
}
```
这样就可以正常执行循环了。另外,你需要注意数组越界的问题,如果 nums1 和 nums2 中没有 20 个元素,循环可能会出现数组下标越界的问题。
阅读全文